zHz00 Untitled

воскресенье, 04 мая 2025
06:30 У Швейка потекла зелёная вода
Остановили ДПС. У вас, говорят, нарушение, но небольшое.

Я спросил, какое же?

Полицейский ответил, что у меня один стоп-сигнал не горит, и за это положен штраф, 500 рублей. А со скидкой 375.

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

Открываю багажник, шевелю раз'ём -- стоп-сигнал загорается.

Говорю -- смотрите, теперь всё работает.

Полицейский говорит -- а вы молодец, а я уже хотел штраф выписывать!

И отдал документы.

***

Я потом посмотрел, действительно за неработающий стоп-сигнал положен штраф, а кроме того, с 2023 года с неработающим стоп-сигналом запрещена эксплуатация ТС. Но... имел ли право полицейский отказаться от штрафа, если я устранил неисправность таким образом? Или задам вопрос по другому -- обязан ли был полицейский отказаться от штрафа? Я не знаю.

@темы: Борьба с техникой, Автомобили

URL
суббота, 03 мая 2025
05:25 Продолжаю писать телеграм-бота для модерирования
Идея проста: когда новый пользователь входит в чат, ему надо сразу выдать мьют на неделю. Это очень эффективно против спаммеров, потому что спаммеры неделю ждать не будут. Их аккаунт почти всегда удаляется раньше. Если не удаляется, то они всё равно уходят из группы. Живые же люди могут написать администраторам в личку или просто подождать.

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

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

"Здравствуйте, zHz01! Из-за атаки ботов всем новым пользователям отключена отправка сообщений на одну неделю. Для досрочного снятия блокировки пишите администраторам чата."

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

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

Ответы телеграм-бот-апи приходят в виде жсонов. Вот какие поля есть у сообщения о входе (chat_member):
1. chat
2. from
3. date
4. old_chat_member
5. new_chat_member

У сообщения о входе в поле from -- данные вошедшего пользователя. Видя, что у меня есть сообщение о входе, я брал данные из поля from и по ним проводил блокировку пользователя. Был ещё один признак, в new_chat_member должно быть поле status, которое содержит слово member, чтобы не перепутать с сообщением о выходе и о блокировке (тогда бы там были слова left и restricted соответственно)

Какие же поля есть у сообщения о разбане? Да те же самые! В поле new_chat_member статус тоже мембер, потому что после разблокировки статус меняется с restricted на member. А какое различие? В поле from. Если пользователя разбанили, то в поле фром будет администратор, а не сам пользователь.

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

Performer of the action, which resulted in the change

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

Ошибку я исправил. Теперь я выдаю мьют не по полю фром. Я сравниваю идентификаторы пользователя в поле фром и в поле new_chat_member. Если идентификаторы совпадают, то пользователь вошёл сам. Если идентификаторы различаются, то это административное действие, и реагировать на него не надо.

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

@темы: Программирование, Борьба с техникой, Telegram

URL
пятница, 02 мая 2025
17:02 Untitled [0741]
Сестра купила чехол для ракеток, бадминтонных.

Сестра: Теперь могу людей агитировать играть со мной в бадминтон.
Я: Это ты будешь им платить или они тебе будут платить?
Сестра: Это будут волонтёры.
Я: ВОЛАНтёры.

@темы: Случай из жизни, Викторика

URL
четверг, 01 мая 2025
14:11 Как я попал в дзен-буддийскую притчу
Выхожу с работы, там на улице стоит вахтёрша. Просто стоит и куда-то смотрит. Ночь.

Я подхожу к ней.

"У вас всё нормально?"

.
.
.

"Да я просто смотрю... чёрные облака закрыли месяц..."

@темы: Случай из жизни

URL
среда, 30 апреля 2025
04:18 Роланд бы поправил картину на стене. А я только жалуюсь
Если я вижу в какой-нибудь организации хозяйственный недостаток, я тихонько сообщаю о нём ответственным лицам. Администраторам и подобным.

"А у вас в туалете мыло кончилось", "раковина засорилась", "ступеньки скользкие, а перил нет"

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

Думаю забить на это. Если уж им это не нужно, то мне и подавно.

@темы: Наблюдения

URL
вторник, 29 апреля 2025
07:38 Лишь однажды Юкихира Сома видел такую силу
Когда я собираюсь делать яичницу, я часто обнаруживаю, что сестра уже что-то делала на сковородке. Сковородка стоит на плите, грязная. Но...

Я спрашиваю сестру, что она делала на сковородке. Цветную капусту, говоришь?

Потеряет ли яичница от вкуса цветной капусты? Ни в коем случае. Ей это пойдёт только на пользу. Я жарю яичницу прямо на грязной сковородке.

Через какое-то время и спрашивать сестру перестал. Я же знаю, что она что-то вкусное делала. А что это было? Скоро узнаем...

@темы: Лайфхак, Восприятие, Еда

URL
понедельник, 28 апреля 2025
06:34 Сменная обувь на работе
Кто-то прямо в уличной ходит. Кто-то в кроссовках. Я много лет ходил в эспадрильях.

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

Ногти я вылечил... а тапочки остались. Потому что это оказалось офигенно удобно.

@темы: Лайфхак

URL
воскресенье, 27 апреля 2025
04:20 А может лучше своими руками?
Как говорят, важен не подарок, важно внимание. Но для мамы важен не подарок, важна его стоимость. Это касается не только (и не столько) подарков, которые дарят ей, сколько подарков, которые дарят другим, но она участвует.

Конкретнее, подарок должен стоить не меньше, чем Х. Откуда берётся Х -- вопрос отдельный, рассматривать его не будем. Ну и если предполагаемый подарок стоит меньше, чем Х, то "ну что же это за подарок, он так мало стоит, надо что-то другое, или что-то дополнительно".

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

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

@темы: Восприятие, Мысли, Наблюдения

URL
суббота, 26 апреля 2025
02:57 Мицукэру-моногатария [10]
Начальник сделал для одной из программ основной цикл работы через конечный автомат. Там было примерно 50 состояний. Он делал это на ходу, не документируя и не зарисовывая. В результате, когда мне понадобилось работать с программой, я обнаружил, что разобрать алгоритм работы не так-то просто.

Я потратил пару дней на рисование схемы. Нарисовал криво-косо, но для меня понятно. И не сфотографировал. А такие вещи надо сразу фотографировать.

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

Прошло... полтора года! Мне коллега присылает фото этого листочка и спрашивает -- "твоё?"

Охуеть. Моё! И где же оно было?

А оно просто лежало в дальнем угла ничейного стола в одной из комнат. Поскольку стол ничейный, листик никто не замечал. Ну и я сам тоже не догадывался туда посмотреть. Скорее всего, я сам его туда и положил и забыл.

@темы: Случай из жизни

URL
пятница, 25 апреля 2025
05:43 Антирейтинг
Иногда я нахожу каких-нибудь новых исполнителей, и почти всегда обнаруживаю, что если они нравятся мне, то они не нравятся сестре. И вот, я в очередной раз нашёл кое-что интересное.

Я (заговорщически улыбаюсь): Мне тут показали нового исполнителя... Пневмослон. Что-нибудь слышала?
Сестра (тоже улыбается): Слышала... (улыбается ещё шире) И мне не нравится.

Тут я понимаю, что это надо использовать наоборот.

Я: Слушай, а что ещё тебе не нравится? Покажи.
Сестра: Ладно... пришлю тебе бан-лист из яндекс-музыки...

@темы: Восприятие, Музыка

URL
четверг, 24 апреля 2025
05:20 Как нас покатали на эмоциональных качелях
Я уже писал, что мы маму отправляли на плановую госпитализацию. На этот раз ей понадобилась экстренная. Состояние не было жизнеугрожающим, но, тем не менее, на дому такое не делают. Я не буду приводить медицинские подробности, пост не об этом. Скажем так, ей должны были провести одну процедуру и одну манипуляцию.

В общем, положили её, пишет, что делать будут завтра. На следующий день с утра в 9 часов написала, что повезли на процедуру. Больше сообщений от неё не было.

В 12 часов звонит папа, и срывающимся голосом спрашивает, писала ли мама что-нибудь с утра. Я сказал, что писала. А он сказал, что ему пришло СМС от ЕМИАС. Вот такое:

Пациент Фамилия И.О. поступил в реанимацию больницы ХХХХ. Для получения ежедневной информации о состоянии его здоровья (в форме смс) необходимо обратиться к лечащему врачу (при визите в больницу).

Если кто не знал, мы который год лечим маму от онкологии. Да, диагноз тяжёлый. Да, скорее всего, от него она и умрёт. Но не сейчас. Ещё не сейчас. Или же?..

Мы сидим такие... "Господи, благослови".

Самое главное, что в больницу-то она легла вовсе не по онкологии. И процедуры ей такие уже делали. Мы не предполагали никаких неожиданностей. Но ладно, давайте попробуем получить дополнительную информацию.

Папа позвонил в справочную. Там ему сказали номер отделения (но для этого пришлось долго расспрашивать) и сказали состояние... на 8 утра -- удовлетворительное.

Это, конечно, было очень интересно, потому что в 8 утра мама ещё была на связи, и не была ни в какой реанимации. А времени был уже час дня. Какой толк в этих сведениях?

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

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

Выдохнули? Почти.

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

В справочной ему сказали... состояние на 6 утра тяжёлое, дыхание самостоятельное. Сказали в 10 утра.

Дыхание самостоятельное, надо же. Уже что-то. Но было всё равно непонятно. Именно это уточнение про дыхание внушало тревогу. Поэтому я написал врачу ещё раз, около 12. Но ответить он мне не успел.

Потому что пришло сообщение от мамы: приезжайте за мной через час, меня выписывают.

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

***

Кто же был главным злодеем в этой ситуации? Справочная.

1. Присылать неожиданные сообщения о поступлении в реанимацию это дурной тон. Я смотрел передачу про психологов МЧС. Говорить с родственниками погибших и пострадавших -- нелёгкая работа. Переводить же это в режим автоматического информирования -- это нонсенс.
2. Если в реанимацию перевели "на всякий случай", то вообще извещать не надо, или надо делать приписку.
3. Если уж извещать, то... вы посмотрите на этот текст! Единственная информация в нём, что человек поступил в реанимацию такой-то больницы. Номера отделения нет. Времени поступления нет. Телефона справочной нет! А телефон справочной -- это самое важное, что должно быть в таком сообщении.
4. Информация о состоянии пациента безнадёжно отстаёт от реальности. Отставание в обычных палатах можно понять. Там наличие-то пациента проверяют два раза в сутки (не считая поварих, но это не медицинский персонал). В реанимации всё не так. Там всё набито медсёстрами и постоянный контроль. Можно довести задержку информации хотя бы до часа.
5. Ну и, честно говоря, запрет на телефоны в реанимации -- это неправильно. Пациенты, которые находятся в приличном состоянии, должны иметь возможность общаться с внешним миром.

Если бы у нас не было личного телефона врача (а его наличие -- редкость), мы бы находились в некотором недоумении касательно того, что же с мамой происходит.

@темы: Случай из жизни, Медицина/Коронавирус

URL
среда, 23 апреля 2025
04:00 Я милиционер
Администратор на конюшне спросила -- Какая ваша профессия?

Я, конечно, не мог упустить возможность.

***

Администратор: Вы правда повар?!

@темы: Случай из жизни, Викторика

URL
вторник, 22 апреля 2025
02:37 Слить воду с макарон
Банальность, конечно.

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

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

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

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

@темы: Лайфхак, Еда

URL
понедельник, 21 апреля 2025
04:59 Мягкая сила
Пришёл человек в нетхак-чат. У нас там уже есть приветственный бот, который угрожает забанить каждого, кто не напишет хотя бы одно сообщение. В реальности эта функция не работает, т.к. у бота недостаточно полномочий.

Я момент прихода пропустил, а когда подошёл к компу, там было сообщение в духе: "я прислал сюда 150 стикеров, а потом удалил. и меня не забанили. ваш антиспам не работает"

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

Я не стал его сразу банить, хотя захотелось. Я его спросил: "А вот если бы антиспам работал, что бы произошло?"
"Я бы улетел в бан"
"Ну, то есть, находиться в этом чате тебе не интересно?"

Тут, конечно, всё зависело от ответа. Если человек не откровенный спаммер, я стараюсь не банить без переговоров. Если человек готов сотрудничать, его можно оставить. И что же ответил этот посетитель?

Ничего. Он сам ушёл.


@темы: Случай из жизни, Telegram

URL
воскресенье, 20 апреля 2025
05:04 Анонс перекрёстной ссылки
Когда я читал Липпмана про Си++, я обращал внимание на то, что тот постоянно пишет "за одним исключением, описанным на стр. ХХХ". Мне это понравилось, и я стал похожие вещи пихать в свои заметки, инструкции и пр.

А потом, когда я сам открыл свои записи, я понял, что так делать не надо. Хуже всего, если написано что-то про исключение, но не написано, где про него читать. Или просто "см. ниже". Даже если написано, где читать, то это всё равно плохо, т.к. надо отвлекаться.

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

@темы: Восприятие, Наблюдения

URL
суббота, 19 апреля 2025
05:59 А ещё был Чикатило...
На об'екте строгие правила вноса и выноса оборудования, а работать надо. Мы посоветовались с местными, и стали использовать схему, суть которой я описывать здесь не буду.

Я рассказываю про эту схему коллегам, и один говорит:
-- Вы только посмотрите на него! Интеллигентного вида человек! В очках! И такие вещи рассказывает.
-- Ну, Мавроди тоже был в очках...

@темы: Случай из жизни, Викторика

URL
пятница, 18 апреля 2025
04:37 Типа рыбалка
Сел писать бота для борьбы со спамом в телеграм-чате. Пока тестирую.

Ну и вот, пришёл очередной спаммер, а сообщение о входе бот не получил. Почему -- вопрос. Я думал, можно воспользоваться списком пользователей чата, или списком Recent Actions. Но ОКАЗЫВАЕТСЯ, телеграм-бот не может получить доступ ни к тому, ни к другому! Чтобы бот мог получить доступ к таким вещам, он должен работать от лица телеграм-аккаунта, и вместо АПИ бота использовать MTProto. Но это совсем другая история.

Ну и вот, я догуглился до того, что я сообщение о входе не получил из-за ошибки в запросе. Переделал запрос.

Сижу, жду. Интересно, много ли людей настолько жаждут получить спам, насколько этого сейчас хочу я?

@темы: Программирование, Восприятие, Борьба с техникой

URL
четверг, 17 апреля 2025
04:52 Фишинг в POS-терминале
Может быть, это какая-нибудь известная задача, решение которой все давно знают. Или хотя бы название которой все давно знают. Но не знаю я. Итак, вот какая проблема меня беспокоит.

Пусть: есть POS-терминал, на котором крутится какое-либо ПО. Оно показывает интерфейс. Есть исходники этого ПО, опубликованные, скажем, на гитхабе. Если ПО компилируемое, то там же есть бинарники с проверяемой сборкой (доверенный компилятор, выдающий побайтово один и тот же код).

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

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

Естественно, выдача любого фиксированного сообщения на терминал не подходит. Допустим, выводить контрольную сумму ПО смысла нет. Я могу выдачу такого сообщения просто включить в правки, чтобы всегда выдавало то, что надо (т.е. ту сумму, что есть на гитхабе). Значит, требуется выдача какого-то динамического кода по типу TOTP.

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

Можно привлечь доверенного посредника, но: а) с какой стати ему доверять б) а что посредник сможет сделать? Любое общение по сети может быть подделано так, будто запросы посылает настоящая программа. Можно даже держать её запущенной параллельно, чтобы она выдавала правильные запросы. Если же посредник будет крутиться на той же машине, то это даёт больше возможностей, но его тоже можно заменить.

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

В общем, не уверен я, что у этой задачи есть решение.

@темы: Программирование, Мысли

URL
среда, 16 апреля 2025
05:26 Антиквариат
Написал мне один знакомый... из другой страны. Спросил, есть ли у меня в телеге старые ненужные группы?

Я сказал, что может и есть, но из-за спамблока я не смогу их ему отдать. А почему он свою не создаст?

Я думал, может, у него тоже спамблок, и он не может создавать группы. Но нет. Он сказал, что хочет такую группу ПРОДАТЬ.

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

И вот чего я не понял, так это ЗАЧЕМ? Скорее всего, для маскировки мошенничества, типа наша группа работает уже 4 года, смотрите. Но всё равно странно.

@темы: Telegram, Наблюдения

URL
вторник, 15 апреля 2025
02:29 Куриный сок
Запекать куру -- это очень просто. Поэтому я часто запекаю куру. С ананасами.

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

Но однажды ананасов купить не удалось. Я запёк куру саму по себе. И всё равно обнаружил в фольге лужу.

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

@темы: Наблюдения, Еда

URL