Таки приветствую, контент я немного задерживаю, так что давайте немного постримим. Что у нас по планам:
- Играем в ETS2 с прекрасным и экспрессивным человеком который завозит завоз.
- Когда завершим ачивку, будем писать обновление для стражника.
Ну и общаемся попутно, задавайте вопросики, задавайте ответики)
- Играем в ETS2 с прекрасным и экспрессивным человеком который завозит завоз.
- Когда завершим ачивку, будем писать обновление для стражника.
Ну и общаемся попутно, задавайте вопросики, задавайте ответики)
❤🔥48❤5🔥3
Бессонный кодер
Таки приветствую, контент я немного задерживаю, так что давайте немного постримим. Что у нас по планам: - Играем в ETS2 с прекрасным и экспрессивным человеком который завозит завоз. - Когда завершим ачивку, будем писать обновление для стражника. Ну и общаемся…
Пишем обновление и общаемся, но в этот раз в одиночку вот тут, пробуем как на твиче пойдёт, ибо в тг всё-таки Пашенька ещё не отполировал.
https://www.twitch.tv/sleepless_code
UPD: закончилось, но будет ещё, как вам?
https://www.twitch.tv/sleepless_code
UPD: закончилось, но будет ещё, как вам?
🔥29❤4❤🔥1
Что же, ручки говорят что если немножко разделить контент план и не хреначить над одной темой, а немного отпускаться в другие, то у меня получится выпускать больше одного поста в неделю)
Так что... Попробуем! Я уже начал себе писать очерки для дополнительных постов помимо основной исследовательской темы сейчас, но также я помню, что многие просили всякие полезности и мини-гайдики по написанию кода. Ну, как говориться, as you want. Но сейчас главный вопрос, а в каком направлении мы пойдём? У меня в стеке два основных языка, Java и TypeScript(JS), так что этот выбор я оставлю вам!
Так что... Попробуем! Я уже начал себе писать очерки для дополнительных постов помимо основной исследовательской темы сейчас, но также я помню, что многие просили всякие полезности и мини-гайдики по написанию кода. Ну, как говориться, as you want. Но сейчас главный вопрос, а в каком направлении мы пойдём? У меня в стеке два основных языка, Java и TypeScript(JS), так что этот выбор я оставлю вам!
🔥35❤3
В каком направлении мы пойдём?
Final Results
25%
TS(JS) и создание ботиков в ТГ
75%
Java и minecraft
🔥29❤1
Если продолжать стримы с программированием, то когда? Множественный выбор
Anonymous Poll
27%
Понедельник вечер
26%
Вторник вечер
29%
Среда вечер
27%
Четверг вечер
46%
Пятница вечер
36%
Суббота день
67%
Суббота вечер
40%
Воскресенье день
53%
Воскресенье вечер
❤17🔥2
Статьи — это, конечно, хорошо, но и своими достижениями тоже хочется похвастаться 😁
Как вы знаете (учитывая, сколько раз я об этом рассказывал), Имперский Стражник проверяет медиафайлы на наличие NSFW-контента. И чтобы всё это работало стабильно — нам пришлось хорошенько постараться.
Как устроена система?
Есть агенты с нейронкой, которые непосредственно проверяют изображения и видео. Но, чтобы они не могли просто скачать всё подряд (безопасность), файлы отдаются через промежуточный сервер, который возвращает только то, что нужно в рамках конкретной задачи.
Агентов много, сервер один — и вот тут начинается самое интересное. Оптимизация. Скорость. Боль (и удовольствие).
Сейчас у нас работает примерно такая схема:
1) После запуска сервер начинает кешировать задачи в in-memory кеш. Он пытается загрузить ~200 файлов в память, чтобы отдавать их с минимальной задержкой.
2) В процессе подгрузки каждую секунду создаётся задача, которая берёт данные из БД и предзагружает по 25 файлов, пока буфер не заполнится.
3) Когда клиент запрашивает задачу, мы сначала проверяем кеш.
— Есть в кеше → отдаём мгновенно + триггерим дозаполнение
— Нет → догружаем синхронно (и да, это уже больнее)
Вроде простой механизм…
Но на деле — это куча вылизанных таймингов, лимитов и балансов.
И что это дало?
Сначала мы вышли на 14 ops, потом на 18 ops.
И ~99% запросов — с минимальным ожиданием благодаря кешу.
А теперь давайте приземлимся: что такое 18 ops?
Это:
18 файлов в секунду
~40 HTTP-запросов к Telegram каждую секунду
~4 МБ/с трафика
И это не пик.
Это стабильная, непрерывная нагрузка.
Представьте: вы листаете чат, где каждую секунду появляется 18 стикеров…
И так часами.
Без единого «loading…».
Вот примерно так сейчас и работает система.
Прикольно получилось)
Кстати, можете сами посмотреть, как это всё живёт в реальном времени:
https://gf.redguy.ru/public-dashboards/e0e799d208844820bd772fdee8b136ca?orgId=1&refresh=5s
Сейчас поток не на максимуме, но всё равно хорошо видно, как основная нагрузка уходит через preload.
Как вы знаете (учитывая, сколько раз я об этом рассказывал), Имперский Стражник проверяет медиафайлы на наличие NSFW-контента. И чтобы всё это работало стабильно — нам пришлось хорошенько постараться.
Как устроена система?
Есть агенты с нейронкой, которые непосредственно проверяют изображения и видео. Но, чтобы они не могли просто скачать всё подряд (безопасность), файлы отдаются через промежуточный сервер, который возвращает только то, что нужно в рамках конкретной задачи.
Агентов много, сервер один — и вот тут начинается самое интересное. Оптимизация. Скорость. Боль (и удовольствие).
Сейчас у нас работает примерно такая схема:
1) После запуска сервер начинает кешировать задачи в in-memory кеш. Он пытается загрузить ~200 файлов в память, чтобы отдавать их с минимальной задержкой.
2) В процессе подгрузки каждую секунду создаётся задача, которая берёт данные из БД и предзагружает по 25 файлов, пока буфер не заполнится.
3) Когда клиент запрашивает задачу, мы сначала проверяем кеш.
— Есть в кеше → отдаём мгновенно + триггерим дозаполнение
— Нет → догружаем синхронно (и да, это уже больнее)
Вроде простой механизм…
Но на деле — это куча вылизанных таймингов, лимитов и балансов.
И что это дало?
Сначала мы вышли на 14 ops, потом на 18 ops.
И ~99% запросов — с минимальным ожиданием благодаря кешу.
А теперь давайте приземлимся: что такое 18 ops?
Это:
18 файлов в секунду
~40 HTTP-запросов к Telegram каждую секунду
~4 МБ/с трафика
И это не пик.
Это стабильная, непрерывная нагрузка.
Представьте: вы листаете чат, где каждую секунду появляется 18 стикеров…
И так часами.
Без единого «loading…».
Вот примерно так сейчас и работает система.
Прикольно получилось)
Кстати, можете сами посмотреть, как это всё живёт в реальном времени:
https://gf.redguy.ru/public-dashboards/e0e799d208844820bd772fdee8b136ca?orgId=1&refresh=5s
Сейчас поток не на максимуме, но всё равно хорошо видно, как основная нагрузка уходит через preload.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25🔥3❤🔥2
Бессонный кодер
В каком направлении мы пойдём?
Ну и ну. Решил узнал мнение у аудитории, а аудитория только сильнее запутала :D
Голоса жёстко идут в майн, но при этом сообщения в чате, директ, бота, личку (аж до сюда добрались) хотят и второго. Ну что же....
Будем смотреть и я думаю попробуем совместить, но в пропорции где будет больше Java, и меньше TS. 75 на 25)
Голоса жёстко идут в майн, но при этом сообщения в чате, директ, бота, личку (аж до сюда добрались) хотят и второго. Ну что же....
Будем смотреть и я думаю попробуем совместить, но в пропорции где будет больше Java, и меньше TS. 75 на 25)
❤🔥40🎉9❤2🔥1🕊1
Кто я? Хороший вопрос, но сегодня на него два ответа: бессонный и раб тех. долга.
Нет ничего лучше чем закрытие тех. долга за 2 года перед сном, так что, готовьтесь наслаждаться, а возможно и засыпать под мои страдания.
Уже чуть более как обычно, на твиче в
Нет ничего лучше чем закрытие тех. долга за 2 года перед сном, так что, готовьтесь наслаждаться, а возможно и засыпать под мои страдания.
Уже чуть более как обычно, на твиче в
23:30 по МСК: https://www.twitch.tv/sleepless_code❤36🔥3
Бессонный кодер
Кто я? Хороший вопрос, но сегодня на него два ответа: бессонный и раб тех. долга. Нет ничего лучше чем закрытие тех. долга за 2 года перед сном, так что, готовьтесь наслаждаться, а возможно и засыпать под мои страдания. Уже чуть более как обычно, на твиче…
Начинаем)
https://www.twitch.tv/sleepless_code
https://www.twitch.tv/sleepless_code
Twitch
sleepless_code - Twitch
sleepless_code streams live on Twitch! Check out their videos, sign up to chat, and join their community.
🔥22😱1🕊1
AI довольно сильно развился за последние пару лет. Помните времена, когда, задавая ему вопрос на русском, вы могли наблюдать весёлые игры с падежами и склонениями? А что сейчас? Есть уже не десятки, а тысячи людей, которые воспринимают текстовые (и не только) модели как друзей, напарников или даже партнёров.
Даже если не говорить про полноценный ИИ, Диана из PRAGMATA поднимает рождаемость сильнее, чем добрая часть демографических программ Японии и России.
Давайте попробуем понять, почему вообще так происходит и надо ли что-то с этим делать. Лучший способ понять тему — изучить её с самого начала.
Сначала была Элиза. Дело было в 1966 году. Профессор MIT Джозеф Вейценбаум хотел разработать программу, которая смогла бы пройти тест Тьюринга. Он решил для своего эксперимента использовать программу диалогового формата (чат-бот до того, как это стало мейнстримом, да и до того, как это слово вообще появилось).
Так как мощности тех лет были сильно ограничены, Элизе надо было выбрать роль, которая объясняла бы примитивные фразы и короткие открытые вопросы. Для этого выбрали амплуа верджинского психотерапевта, хотя он и после много раз указывал, что не закладывал идеи создания системы-психотерапевта. У него была одна задача: создать программу, которая убедит её пользователя в своей разумности.
Итоговый результат оказался очень даже хорошим, учитывая год создания. Под капотом Элиза имела речевую модель, которая могла генерировать предложения с использованием ключевых слов — простые предложения, но для 1966 года (да и в массовости до 2020-х) это представлялось чистой магией.
Как она это делала, рассмотрим детальнее в следующих постах этой рубрики. А пока, поделитесь в комментариях, есть ли ИИ или другие цифровые образы, которые пробуждают в вас что-то большее :3
Даже если не говорить про полноценный ИИ, Диана из PRAGMATA поднимает рождаемость сильнее, чем добрая часть демографических программ Японии и России.
Давайте попробуем понять, почему вообще так происходит и надо ли что-то с этим делать. Лучший способ понять тему — изучить её с самого начала.
Сначала была Элиза. Дело было в 1966 году. Профессор MIT Джозеф Вейценбаум хотел разработать программу, которая смогла бы пройти тест Тьюринга. Он решил для своего эксперимента использовать программу диалогового формата (чат-бот до того, как это стало мейнстримом, да и до того, как это слово вообще появилось).
Так как мощности тех лет были сильно ограничены, Элизе надо было выбрать роль, которая объясняла бы примитивные фразы и короткие открытые вопросы. Для этого выбрали амплуа верджинского психотерапевта, хотя он и после много раз указывал, что не закладывал идеи создания системы-психотерапевта. У него была одна задача: создать программу, которая убедит её пользователя в своей разумности.
Итоговый результат оказался очень даже хорошим, учитывая год создания. Под капотом Элиза имела речевую модель, которая могла генерировать предложения с использованием ключевых слов — простые предложения, но для 1966 года (да и в массовости до 2020-х) это представлялось чистой магией.
Как она это делала, рассмотрим детальнее в следующих постах этой рубрики. А пока, поделитесь в комментариях, есть ли ИИ или другие цифровые образы, которые пробуждают в вас что-то большее :3
❤48🔥7⚡4
Clompi: Ты. Ключ. Остальное лишнее.
Никаких сборов IP, cookies, кроме одной технической локальной куки для Твоего входа на сайт, никаких email, паролей, телефонов, seed фраз, лишь ключ. Полностью анонимный и зашифрованный сайт, никто не видит что Ты там делаешь, даже Я.
В нём: Личное зашифрованное локальное хранилище с локальным LLM чатом, которое находится в кэше браузера, шифрование ( AES-GSM )
По мимо этого, чат, навигаторы, ассистенты, гиды, сообщество идей и т.д
Я делаю обновления без громких аноснов, всё что есть и будет: Твоё.
Никаких подписок, привилегий, токенов, доплат, лишь ключ разово.
Ты поддержал меня и Я поддержу Тебя.
Ключ навсегда 2000₽, в боте @Clompi_bot
Канал: https://t.me/clompi_ai?erid=2W5zFHKRCoj
Сайт: https://tglink.io/66a294b23e5ce0?erid=2W5zFHKRCoj
Никаких сборов IP, cookies, кроме одной технической локальной куки для Твоего входа на сайт, никаких email, паролей, телефонов, seed фраз, лишь ключ. Полностью анонимный и зашифрованный сайт, никто не видит что Ты там делаешь, даже Я.
В нём: Личное зашифрованное локальное хранилище с локальным LLM чатом, которое находится в кэше браузера, шифрование ( AES-GSM )
По мимо этого, чат, навигаторы, ассистенты, гиды, сообщество идей и т.д
Я делаю обновления без громких аноснов, всё что есть и будет: Твоё.
Никаких подписок, привилегий, токенов, доплат, лишь ключ разово.
Ты поддержал меня и Я поддержу Тебя.
Ключ навсегда 2000₽, в боте @Clompi_bot
Канал: https://t.me/clompi_ai?erid=2W5zFHKRCoj
Сайт: https://tglink.io/66a294b23e5ce0?erid=2W5zFHKRCoj
❤18🔥2🤔1
Настало время рассказать причину моего полного отсутствия в последнее пару недель, я переезжал) До этого не задумывался, насколько у меня много всякого мерса и книг, теперь я могу стримить и делать контентик почти каждый день)
Какие фандомы и художников узнали?🥰
Какие фандомы и художников узнали?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36❤🔥6❤3
Лучший навык в работе — умение признавать свои ошибки. Ошибаются все, а вот учатся на них и выносят пользу — далеко не многие.
3 мая вы могли заметить, что Имперский Стражник с ночи работал не очень стабильно: не отвечал на некоторые запросы, а на другие отвечал по несколько минут. Мы признаём — мы накосячили. И сильно. Давайте вместе посмотрим, что мы делали и где всё пошло не так.
Уже давно у нас стояла задача на создание второй, текстовой модели для ИИ-модерации. Сейчас мы умеем проверять только визуал, но если запрещённый контент находится в тексте — мы его не видим. Тут и должна помочь текстовая модель.
27 апреля — 1 мая
Мы берём в активную разработку задачу на создание и интеграцию текстовой модели. Первая итерация: для хранения угрозы используется единое поле
2 мая, 13:00 — первый звоночек
Нам присылают репорт и интересное предложение. Суть: Стражник выдал ограничение за порнографию в ответ на стикер, где был лишь шуточный текст про половой акт.
Предложение звучало так:
Мы задумываемся и понимаем: поинт крайне корректный. Нужно срочно исправлять ситуацию, пока массовые ограничения с такой логикой не улетели всем подряд.
2 мая, 14:15
Создаём задачу
Разделяем текстовую и визуальную угрозу.
3 мая, 1:26
Выкатываемся на прод (не с первого раза). Пропускная способность крайне низкая, при этом
3 мая, 1:52
Отваливается Prometheus.
Мы уже понимаем: вечер будет весёлый.
За 7 минут дебага находим кривой запрос сбора статистики и правим его.
3 мая, 2:27
После ещё пары хотфиксов мы наконец в проде. Всё работает. Без даунтайма внедрили фичу. Красота.
Тогда мы ещё не знали, что натворили.
За пару минут система разгоняется до 11 ops.
Что такое 11 ops? Это 11 файлов, которые скачиваются, проверяются и сохраняются каждую секунду.
3 мая, 3:01 — первый звонок армагеддона
Начинаем получать от BOT API:
Мы подумали, что упёрлись в лимит
Оказалось, мы упёрлись в лимит общего количества запросов к BOT API. Ошибки начали ловить вообще все методы бота.
Через 8 минут внедряем rate limiter и заканчиваем рабочий день.
3 мая, 14:17
Замечаем странное поведение. Несмотря на лимитер, Too Many Requests становится только больше.
Очень странно.
Я решаю написать миксин, который будет отдавать в Prometheus статистику запросов в разрезе бота и метода.
3 мая, 14:40
Дописываю логику, собираю дашборд… и тут становится понятно то, что мы уже начинали подозревать.
Лимитер. Не работает.
При лимите в 20 ops…
МЫ ДЕЛАЕМ 95 OPS.
3 мая, 16:36
Релизим новый лимитер, который уже нормально работает с потоками и не допускает ошибок прошлой версии.
Но за время разработки у нас случился тот самый:
Из-за разгона до 173 ops Telegram на минуту отрезал нам вообще все запросы. Полностью.
Да, было больно.
3 мая, 17:00
Инцидент полностью разрешён. Очереди разгребены, фон ошибок снижен, всё стабилизировалось.
Что можно сказать по итогу?
Ну… мы очень жёстко накосячили 😅
Недостаток метрик и нормальных prod-like тестов привёл к тому, что в продакшен уехал код, который устроил харакири нашей пропускной способности.
Но зато:
— появились новые дашборды
— алерты на рост ops
— понимание, куда смотреть и чёткое осознание того, насколько опасно релизить в прод
Вот как-то так :3
А у вас в проектах были подобные инциденты?
Буду рад почитать истории в комментариях. Ну и да, ещё покидаю туда цитаты из рабочего чатика — там были настоящие легендарные сообщения
3 мая вы могли заметить, что Имперский Стражник с ночи работал не очень стабильно: не отвечал на некоторые запросы, а на другие отвечал по несколько минут. Мы признаём — мы накосячили. И сильно. Давайте вместе посмотрим, что мы делали и где всё пошло не так.
Уже давно у нас стояла задача на создание второй, текстовой модели для ИИ-модерации. Сейчас мы умеем проверять только визуал, но если запрещённый контент находится в тексте — мы его не видим. Тут и должна помочь текстовая модель.
27 апреля — 1 мая
Мы берём в активную разработку задачу на создание и интеграцию текстовой модели. Первая итерация: для хранения угрозы используется единое поле
danger с приоритизацией по опасности. На наш взгляд, это была рабочая и вполне нормальная логика. Мы дописали код и выкатили релиз в продакшен.2 мая, 13:00 — первый звоночек
Нам присылают репорт и интересное предложение. Суть: Стражник выдал ограничение за порнографию в ответ на стикер, где был лишь шуточный текст про половой акт.
Предложение звучало так:
«А ты не думал им отдельные категории выдать? Потому что порнография текстом и порнография картинкой — вещи немного разные».
Мы задумываемся и понимаем: поинт крайне корректный. Нужно срочно исправлять ситуацию, пока массовые ограничения с такой логикой не улетели всем подряд.
2 мая, 14:15
Создаём задачу
IG-132841, в рамках которой планируем рефактор:intent_mediaintent_textРазделяем текстовую и визуальную угрозу.
3 мая, 1:26
Выкатываемся на прод (не с первого раза). Пропускная способность крайне низкая, при этом
Load Average — 23. Потеряли индексы в БД. Спустя 20 минут восстанавливаем индексы, чиним медленные запросы и продолжаем жить.3 мая, 1:52
Отваливается Prometheus.
Мы уже понимаем: вечер будет весёлый.
За 7 минут дебага находим кривой запрос сбора статистики и правим его.
3 мая, 2:27
После ещё пары хотфиксов мы наконец в проде. Всё работает. Без даунтайма внедрили фичу. Красота.
Тогда мы ещё не знали, что натворили.
За пару минут система разгоняется до 11 ops.
Что такое 11 ops? Это 11 файлов, которые скачиваются, проверяются и сохраняются каждую секунду.
3 мая, 3:01 — первый звонок армагеддона
Начинаем получать от BOT API:
TelegramError: 429: Too Many Requests: retry after 60Мы подумали, что упёрлись в лимит
getFile. Ну бывает. Сейчас ограничим скорость и пойдём спать. Ага. Конечно.Оказалось, мы упёрлись в лимит общего количества запросов к BOT API. Ошибки начали ловить вообще все методы бота.
Через 8 минут внедряем rate limiter и заканчиваем рабочий день.
3 мая, 14:17
Замечаем странное поведение. Несмотря на лимитер, Too Many Requests становится только больше.
Очень странно.
Я решаю написать миксин, который будет отдавать в Prometheus статистику запросов в разрезе бота и метода.
3 мая, 14:40
Дописываю логику, собираю дашборд… и тут становится понятно то, что мы уже начинали подозревать.
Лимитер. Не работает.
При лимите в 20 ops…
МЫ ДЕЛАЕМ 95 OPS.
3 мая, 16:36
Релизим новый лимитер, который уже нормально работает с потоками и не допускает ошибок прошлой версии.
Но за время разработки у нас случился тот самый:
«пик, после которого лимиты Telegram посадили нас на пику».
Из-за разгона до 173 ops Telegram на минуту отрезал нам вообще все запросы. Полностью.
Да, было больно.
3 мая, 17:00
Инцидент полностью разрешён. Очереди разгребены, фон ошибок снижен, всё стабилизировалось.
Что можно сказать по итогу?
Ну… мы очень жёстко накосячили 😅
Недостаток метрик и нормальных prod-like тестов привёл к тому, что в продакшен уехал код, который устроил харакири нашей пропускной способности.
Но зато:
— появились новые дашборды
— алерты на рост ops
— понимание, куда смотреть и чёткое осознание того, насколько опасно релизить в прод
Вот как-то так :3
А у вас в проектах были подобные инциденты?
Буду рад почитать истории в комментариях. Ну и да, ещё покидаю туда цитаты из рабочего чатика — там были настоящие легендарные сообщения
🔥16❤3❤🔥1
Как строить карьеру в IT и не раствориться в работе.
Я backend-разработчик и футбольный энтузиаст с системным подходом к спорту.
Играю в разных странах и с разным уровнем соперничества: от локальных матчей до турниров в Азии.
В канале пишу:
— о личном опыте лида в IT и реальных технических решениях 👨🎓
— о развитии своих проектов и о том, чему они учат 📈
— о футбольных движухах в разных странах 🏃♂️
— о том, как не терять форму при плотной работе 💪
— о лайфстайле зимовщика 🧘♀️
Без мотивационных лозунгов.
Без «успешного успеха».
Только практика, дисциплина и честные наблюдения.
👉 Футбольный синьор
Если вам близка идея баланса между карьерой и личной жизнью и интересно заглянуть за кулисы IT, добро пожаловать на канал.
Я backend-разработчик и футбольный энтузиаст с системным подходом к спорту.
Играю в разных странах и с разным уровнем соперничества: от локальных матчей до турниров в Азии.
В канале пишу:
— о личном опыте лида в IT и реальных технических решениях 👨🎓
— о развитии своих проектов и о том, чему они учат 📈
— о футбольных движухах в разных странах 🏃♂️
— о том, как не терять форму при плотной работе 💪
— о лайфстайле зимовщика 🧘♀️
Без мотивационных лозунгов.
Без «успешного успеха».
Только практика, дисциплина и честные наблюдения.
👉 Футбольный синьор
Если вам близка идея баланса между карьерой и личной жизнью и интересно заглянуть за кулисы IT, добро пожаловать на канал.
❤🔥8❤1