На почитать тем, кто хочет быть серьёзным человеком модным программистом: автоматическое развёртывание своих шыдевров на серверах, средствами GitHub Actions:
https://yangx.top/eshu_coding/185
Автор здесь присутствует и доступен для комментариев.
P. S. Моему уровню сложности пока хватает кнопки Deploy в PyCharm. :)
https://yangx.top/eshu_coding/185
Автор здесь присутствует и доступен для комментариев.
P. S. Моему уровню сложности пока хватает кнопки Deploy в PyCharm. :)
Telegram
Эшу быдлокодит
Довольно важная и модная сейчас тема - автоматическое развертывание кода и в пределе - непрерывная поставка. После того как программист отправил несколько строк кода в репозиторий запускаются сонмы автотестов, если всё ок - строки попадают на прод или в грядущее…
Время субботнего наброса вопроса.
Скажите, а как вы на советской технике в танки гоняете (war thunder)? Ведь она же говно, лютейшее, с бронепробиваемостью в районе дна.
Я справляюсь конечно, но за счёт опыта: засады, фланговые охваты, снайперская стрельба в уязвимые места лобовой проекции.
Но. В лоб ехать на немцев/американцев в своем классе - лёгкий способ самоубийства. А на немцах можно достаточно долго продержаться в лобовой мясорубке, например, чтобы захватить единственную точку на карте.
Скажите, а как вы на советской технике в танки гоняете (war thunder)? Ведь она же говно, лютейшее, с бронепробиваемостью в районе дна.
Я справляюсь конечно, но за счёт опыта: засады, фланговые охваты, снайперская стрельба в уязвимые места лобовой проекции.
Но. В лоб ехать на немцев/американцев в своем классе - лёгкий способ самоубийства. А на немцах можно достаточно долго продержаться в лобовой мясорубке, например, чтобы захватить единственную точку на карте.
Ночные разговоры. Ещё один мой друг-программист познакомился с реальным протоколом телеграм вблизи. Причём, в отличии от меня, любителя, он программист настоящий.
Библиотеки высокого уровня абстракции (telethon, aiogram, etc) прячут от нас чудовищную мешанину из костылей и по 10 раз сломаных и неправильно сросшихся костей (несущих конструкций протокола), обвешанную снаружи фишечками типа войс-чатов и анимированых стикеров.
И до момента, когда вам понадобится обрабатывать устойчивый поток в 500-1000 и выше сообщений в секунду на входе, я никому не советую туда лезть.
Впрочем, у Паши хорошие системщики. Есть такое редкое животное, системный программист. Он пишет компактный код, который исполняется быстро и ещё быстрее. У большинства современных сервисов этих людей нет, они редкие и очень дорогие. У Паши они есть, поэтому наш франкенштейн по факту - очень быстро и почти без глюков работает.
Библиотеки высокого уровня абстракции (telethon, aiogram, etc) прячут от нас чудовищную мешанину из костылей и по 10 раз сломаных и неправильно сросшихся костей (несущих конструкций протокола), обвешанную снаружи фишечками типа войс-чатов и анимированых стикеров.
И до момента, когда вам понадобится обрабатывать устойчивый поток в 500-1000 и выше сообщений в секунду на входе, я никому не советую туда лезть.
Впрочем, у Паши хорошие системщики. Есть такое редкое животное, системный программист. Он пишет компактный код, который исполняется быстро и ещё быстрее. У большинства современных сервисов этих людей нет, они редкие и очень дорогие. У Паши они есть, поэтому наш франкенштейн по факту - очень быстро и почти без глюков работает.
Когда ты школьник, но сломал сайт Белорусской АЭС, вставив свой кривой html посреди кода главной страницы. И даже подготовил английскую версию, отдельно доставляющую своим "переводом".
Хорошая шутка в преддверии 26 апреля.
P. S. Самое смешное, что версии текста на белорусском нет.
Хорошая шутка в преддверии 26 апреля.
P. S. Самое смешное, что версии текста на белорусском нет.
Обнаружение чатов при каналах в телеграм было головной болью, до появления комментариев прошлой осенью.
Дело в том, что GetFullChannelRequest жёстко лимитирован. На 201 вызове телеграм выдаёт исключение FloodWait и ты сутки куришь бамбук.
А сейчас можно нелимитированными запросами узнать про само наличие чата при канале, после чего использовать "дорогой" фуллреквест.
Что происходит на картинке?
Первым делом мы получаем последние 10 сообщений канала. Если в одном посте несколько картинок, то "внезапно" поле replies будет только у одной из них. Поэтому запрашивать надо не менее 10 сообщений (максимальный размер альбома)
Если найден чат, перебор обрываем. Но, из реплаев мы получили только id привязаного чата, что не даёт нам доступа к нему.
Поэтому если чат есть, то все равно приходится вызывать фуллреквест, после чего мы можем уже читать чат и список его пользователей, что в конце и происходит. :)
Дело в том, что GetFullChannelRequest жёстко лимитирован. На 201 вызове телеграм выдаёт исключение FloodWait и ты сутки куришь бамбук.
А сейчас можно нелимитированными запросами узнать про само наличие чата при канале, после чего использовать "дорогой" фуллреквест.
Что происходит на картинке?
Первым делом мы получаем последние 10 сообщений канала. Если в одном посте несколько картинок, то "внезапно" поле replies будет только у одной из них. Поэтому запрашивать надо не менее 10 сообщений (максимальный размер альбома)
Если найден чат, перебор обрываем. Но, из реплаев мы получили только id привязаного чата, что не даёт нам доступа к нему.
Поэтому если чат есть, то все равно приходится вызывать фуллреквест, после чего мы можем уже читать чат и список его пользователей, что в конце и происходит. :)
Эшу и приключения проекта Палантир, часть II. Очень смешная заметка про проблемы по настоящему массового сбора данных. Надеюсь на еще многие продолжения. 🍸
Telegram
Эшу быдлокодит
Палантир. Часть 2. Жизненный цикл команд.
#палантир@eshu_coding
Как я уже упоминал, мой сборщик построен на микросервисной архитектуре: центральный сервер - master для хранения информации, находящийся над БД (postgresql) и slave-ы сборщики, в некотором количестве.…
#палантир@eshu_coding
Как я уже упоминал, мой сборщик построен на микросервисной архитектуре: центральный сервер - master для хранения информации, находящийся над БД (postgresql) и slave-ы сборщики, в некотором количестве.…
И к политическим новостям.
Утреннее обновление баз Фомы рассказало мне, что за сутки были удалены или стали приватными 11 чатов штабов Навального и 1 мелкий чат либертарианцев (видимо на всякий случай):
Navalny SPb
Волонтёры Екб
Омск | Команда Навального
Команда Навального | Челябинск
Волонтерский (штаб в Чебоксарах)
Чат штаба Навального | Волгоград
Политфлудилка | Калининград
⚜️Team Navalny VRN⚜️
Флудилка Москва
Команда Навального | Курган
Команда Навального Ярославль
--
ЛПР | Омск: Публичный чат
Какой быстрый переход от мы здесь власть к суетливому затиранию следов :)
Утреннее обновление баз Фомы рассказало мне, что за сутки были удалены или стали приватными 11 чатов штабов Навального и 1 мелкий чат либертарианцев (видимо на всякий случай):
Navalny SPb
Волонтёры Екб
Омск | Команда Навального
Команда Навального | Челябинск
Волонтерский (штаб в Чебоксарах)
Чат штаба Навального | Волгоград
Политфлудилка | Калининград
⚜️Team Navalny VRN⚜️
Флудилка Москва
Команда Навального | Курган
Команда Навального Ярославль
--
ЛПР | Омск: Публичный чат
Какой быстрый переход от мы здесь власть к суетливому затиранию следов :)
Как хорошо жить в России.
Чат моего клиента атакуют вялые арабские боты. Они заходят раз в несколько минут, но зато часами.
У Фомы, естественно, появилась черепомерка, которая в двух десятках строчек проблему решила.
Теперь жизнь араба в чате длится от 300 до 1000 миллисекунд.
А отдельно мне доставляет, представлять чтобы сделали с программистом в Европе, который опубликует такой код 😄
Чат моего клиента атакуют вялые арабские боты. Они заходят раз в несколько минут, но зато часами.
У Фомы, естественно, появилась черепомерка, которая в двух десятках строчек проблему решила.
Теперь жизнь араба в чате длится от 300 до 1000 миллисекунд.
А отдельно мне доставляет, представлять чтобы сделали с программистом в Европе, который опубликует такой код 😄
Ещё один лайфхак по борьбе с арабскими ботами.
Некоторые из них имеют вполне человеческие имена, но палятся на биографии.
Добраться до поля bio у юзера обычным get_entity() нельзя. Надо либо тратить "дорогой" и лимитированый GetFullUserRequest, что в условиях набега нереально, либо изобретать обходной путь.
Дальше вам уже все понятно по картинке. В отдельный поток (чтобы не мешать основной обработке) выделяется проверка биографий, путем http запроса к сайту t.me, где bio есть на странице. И если биография нам не нравится, баним тело за 2 секунды.
В итоге набег кончился к утру 29 числа, чистой победой моего бота.
Некоторые из них имеют вполне человеческие имена, но палятся на биографии.
Добраться до поля bio у юзера обычным get_entity() нельзя. Надо либо тратить "дорогой" и лимитированый GetFullUserRequest, что в условиях набега нереально, либо изобретать обходной путь.
Дальше вам уже все понятно по картинке. В отдельный поток (чтобы не мешать основной обработке) выделяется проверка биографий, путем http запроса к сайту t.me, где bio есть на странице. И если биография нам не нравится, баним тело за 2 секунды.
В итоге набег кончился к утру 29 числа, чистой победой моего бота.
И о действительно важных новостях: в War Thunder 30% скидка на покупку немецкой техники за львы (игровую валюту)
Я прикупил весь пятый ранг начального уровня: JPz 4-5, M48A2 C, Leopard I, Kugelblitz, Jagdtiger за меньше чем 1,4 млн тугриков.
Опробовал пока только зенитку - огонь. 4-5 самолетов с катки легко, и это еще не тюнингованная. Плюс прибил "собрата" на втором Оствинде с дистанции в 1,5км.
Я прикупил весь пятый ранг начального уровня: JPz 4-5, M48A2 C, Leopard I, Kugelblitz, Jagdtiger за меньше чем 1,4 млн тугриков.
Опробовал пока только зенитку - огонь. 4-5 самолетов с катки легко, и это еще не тюнингованная. Плюс прибил "собрата" на втором Оствинде с дистанции в 1,5км.
Суточное обновление показало на неожиданно распухший чатик сторонников Мальцева (если вы помните ещё, кто это такой 😄). Был полудохлым - 88 человек, 19 мёртвых аккаунтов и вдруг прибавилось 934 "человека".
Вот вам пример живого ботнета в телеграм. Анализ входов даёт 94.5% свежих аккаунтов, забежавших за полчаса. Теперь сидят и пока молчат.
Местные обитатели что-то подозревают, но некоторые считают это оживлением. :)
Ссылка на чат @narodovlastie511 (не пугайте их сильно, пол бетонный).
Вот вам пример живого ботнета в телеграм. Анализ входов даёт 94.5% свежих аккаунтов, забежавших за полчаса. Теперь сидят и пока молчат.
Местные обитатели что-то подозревают, но некоторые считают это оживлением. :)
Ссылка на чат @narodovlastie511 (не пугайте их сильно, пол бетонный).