Кто там говорил, что все айтишники — неспортивные и с кучей болячек?
Ладно, частично они правы: профессиональных заболеваний хватает, а размер моей медицинской карты внушает уважение. 😅 Но вот с отсутствием спорта я категорически не согласен!
Уже несколько лет активно занимаюсь городским велоспортом: общаюсь с ЦОДД, запрашиваю обновление инфраструктуры и, конечно, катаюсь! Даже не знаю, сколько тысяч километров намотал за прошлые годы.
И вот, 15 марта в Москве стартует вело-самокатный сезон, и я просто не мог не отметить это поездкой на 70 километров!
(3 часа катался на велосипеде и… не сделал ни одной фотки самого велосипеда. Классика! 😆)
Ладно, частично они правы: профессиональных заболеваний хватает, а размер моей медицинской карты внушает уважение. 😅 Но вот с отсутствием спорта я категорически не согласен!
Уже несколько лет активно занимаюсь городским велоспортом: общаюсь с ЦОДД, запрашиваю обновление инфраструктуры и, конечно, катаюсь! Даже не знаю, сколько тысяч километров намотал за прошлые годы.
И вот, 15 марта в Москве стартует вело-самокатный сезон, и я просто не мог не отметить это поездкой на 70 километров!
(3 часа катался на велосипеде и… не сделал ни одной фотки самого велосипеда. Классика! 😆)
🔥99❤10👍4❤🔥3👏3🎉3🍓2🗿2😱1👌1🤪1
Бессонный кодер
Как поспали? Надеюсь, хорошо! А вот наша команда и серверы с компами ХРЕНАЧИЛИ всю ночь! А ещё я наконец начал окунаться в невероятно интересный мир highload-распределённых вычислений, но обо всём по порядку. Вы уже не раз слышали о нашей системе контентной…
Помните эту историю? Ждали продолжение? А вот и оно.
Как я ускорил обработку файлов во много раз
Я окончательно понял: настало время менять подход. Пора писать отдельный сервер, который будет работать с нашим текущим протоколом, но использовать все мощности.
Чтобы понять, что изменилось, давайте рассмотрим старый алгоритм:
1️⃣ Воркер подключается к серверу по WebSocket и авторизуется под своим токеном. (Это защищает файлы от кражи и позволяет учитывать бонусы модераторов.)
2️⃣ После успешной авторизации воркер запрашивает задачу. Если задач нет, он ждёт 1 минуту и повторяет запрос. Если задача есть, сервер загружает файл из Telegram и отдаёт его воркеру.
3️⃣ Воркер обрабатывает файл, классифицирует его по таблице NSFW и отправляет результат на сервер. Контроллер проверяет данные и начисляет бонусы.
Где была проблема?
Задачи скачивались в момент запроса воркера. А воркеров много! Для каждого приходилось делать запрос к базе и загружать файл с Telegram.
Итог: CPU и Load Average в сотку, а обработка одного файла занимала 30-40 секунд.
Как я решил проблему?
🔥 Батчинг работы с БД – вместо тысячи мелких запросов теперь запрашиваю большой пул задач, которые потом раздаются воркерам.
🔥 Предварительная загрузка – заранее подкачиваю файлы в балансирующий буфер, чтобы воркеры не ждали.
🔥 Отдельный сервер – вынес контроллер загрузки на отдельную машину, разгрузив БД и основной сервер.
🔥 Параллельная загрузка – Telegram иногда «тупит» и держит запрос по 5-20 секунд, поэтому теперь одновременно отправляется 25 запросов.
Результаты оптимизации:
Тут координатор нашёл баланс и начал накапливать файлы для отдачи воркерам, позволяя выдавать им задачи за минимальный срок.
Тут мы перешли в наблюдение, будет ли оно дальше жить и на что нам надеятся.
Верно очередь шла вниз, но мне хотелось быстрее, поэтому я начал эксперименты.
Но обновил я его не только инфографикой, но и другим балансом настроек скачивания, что по моей теории должно было ускорить работу...
Как я ускорил обработку файлов во много раз
Я окончательно понял: настало время менять подход. Пора писать отдельный сервер, который будет работать с нашим текущим протоколом, но использовать все мощности.
Чтобы понять, что изменилось, давайте рассмотрим старый алгоритм:
1️⃣ Воркер подключается к серверу по WebSocket и авторизуется под своим токеном. (Это защищает файлы от кражи и позволяет учитывать бонусы модераторов.)
2️⃣ После успешной авторизации воркер запрашивает задачу. Если задач нет, он ждёт 1 минуту и повторяет запрос. Если задача есть, сервер загружает файл из Telegram и отдаёт его воркеру.
3️⃣ Воркер обрабатывает файл, классифицирует его по таблице NSFW и отправляет результат на сервер. Контроллер проверяет данные и начисляет бонусы.
Где была проблема?
Задачи скачивались в момент запроса воркера. А воркеров много! Для каждого приходилось делать запрос к базе и загружать файл с Telegram.
Итог: CPU и Load Average в сотку, а обработка одного файла занимала 30-40 секунд.
Как я решил проблему?
🔥 Батчинг работы с БД – вместо тысячи мелких запросов теперь запрашиваю большой пул задач, которые потом раздаются воркерам.
🔥 Предварительная загрузка – заранее подкачиваю файлы в балансирующий буфер, чтобы воркеры не ждали.
🔥 Отдельный сервер – вынес контроллер загрузки на отдельную машину, разгрузив БД и основной сервер.
🔥 Параллельная загрузка – Telegram иногда «тупит» и держит запрос по 5-20 секунд, поэтому теперь одновременно отправляется 25 запросов.
Результаты оптимизации:
23:03
Files in queue: 1 922 795
Buffer: 500/1000 (50.0%) | Workers: 10
Я: Написал реле, щас постестим
Я: Попробуй поменять адрес сервера у воркеров на [REDACTED]
Я: Не сказать что буффер там успевает накачиваться, но хоть пытается
Я: Уже 500(прим. автора - имеется в виду количество файлов) в кеше
23:18
Files in queue: 1 907 795
Buffer: 401/1000 (40.1%) | Workers: 27
Модератор: 1к за 2 минут (прим. автора - модератор имеет в виду что его воркеры обработали 1к файлов за 2 минуты)
Я: *****
Я: БУФФЕР СТАЛ РАСТИ
Тут координатор нашёл баланс и начал накапливать файлы для отдачи воркерам, позволяя выдавать им задачи за минимальный срок.
23:22
Files in queue: 1903795
Buffer: 908/1000 (90.8%) | Workers: 27
Я: Щас как понимаю основная статья ожидания, сетевые расходы?
Модератор: Уже нет, ты отдаёшь и принимаешь стикеры в среднем за 0.3 секунд
Модератор: Поздравляю Илья, ты смог оптимизировать это настолько что теперь мой процессор забит на 100 процентов)
Я: ***** ТЫ ТАМ РАЗОГНАЛСЯ
Модератор: СКОЛЬКО
Модератор: Я подрубил вторую видюху, пришлось немного переписать твой код, сейчас смотрю насколько поможет
Я: Я увидел 38 воркеров онлайн Щас 31
Тут мы перешли в наблюдение, будет ли оно дальше жить и на что нам надеятся.
23:43
Files in queue: 1887243
00:18
Files in queue: 1854381
Верно очередь шла вниз, но мне хотелось быстрее, поэтому я начал эксперименты.
00:30
Files in queue: 1 843 115
Я: @(тег модератора) ты механизм переподключения не убирал?
Модератор: Нет, А что
Я: ага, хочу чуть обновить реле инфографикой
Я: в момент рестартнется скоро
Модератор: Окей
Но обновил я его не только инфографикой, но и другим балансом настроек скачивания, что по моей теории должно было ускорить работу...
🔥56❤8👍6🫡4😎3❤🔥2💘1
Media is too big
VIEW IN TELEGRAM
А вот и последний пост из серии про проверку стикеров.
Мы достигли предела совершенства контроллера, он работал с файлами так быстро и эффективно, что успевал попутно отдохнуть и собрать буффер.
И наконец... 4 марта, 5:35:40 - мы разобрали 2 миллиона, всего 1 день, 9 часов и 33 минуты. Получается мы в среднем обрабатывали 16,5 файлов в секунду. (по факту в пиках куда быстрее).
Ну а так как постик получился короче, то я подкрепил вам видео того как шла эта обработка от лица контроллера
1:11 Files in queue: 1808521
Buffer: 4768/5000 (95.3%) | Workers: 32
Я: Кеш ещё греется
Я: 10 файлов в секунду пока в пике
Я: 12 файлов в секунду пик
Я: Немного поменял настройки буфферизатора, разогнались, уже 1к в буфферe
Я: Download speed 28.32 files/sec
Я: СКОРОСТЬ ЗАГРУЗКИ ФАЙЛОВ ВДВОЕ ВЫШЕ СКОРОСТИ РАБОТЫ ВСЕХ ВОРКЕРОВ
Я: ОН ПЕРЕПОЛНИЛСЯ
Модератор: АХХАХАХВХАХВХА
Мы достигли предела совершенства контроллера, он работал с файлами так быстро и эффективно, что успевал попутно отдохнуть и собрать буффер.
1:47 Files in queue: 1775747
Buffer: 4779/5000 (95.5%) | Workers: 32
5:03 Files in queue: 1597441
Buffer: 4850/5000 (97%) | Workers: 36
И наконец... 4 марта, 5:35:40 - мы разобрали 2 миллиона, всего 1 день, 9 часов и 33 минуты. Получается мы в среднем обрабатывали 16,5 файлов в секунду. (по факту в пиках куда быстрее).
Ну а так как постик получился короче, то я подкрепил вам видео того как шла эта обработка от лица контроллера
🔥56🥰8👏5👍2💋2🤔1
Что же... Раз уж у канала стоит метка "Авторский канал", то я опять воспользуюсь правом поговорить о... важном :D
Как немногие могли заметить, последние 24 часа я пропал из сети, статус онлайна обновлялся дай бог раз в 4 часа, но на сообщения особо не отвечал. Бустеры всё знали, теперь время раскрыть тайну и другим. Всё просто, я на сутки гонял на поиск в соседней области, а как оказалось, со связью там вообще беды. Ну и я, после того как довольно долго не мог нормально посетить лесные поиски и помогал только на городских, с радостью искал в лесу, а болото которое я проходил в своих болотоходах, м-м-м... Короче да, выбрался из города и отдыхал от него.
Ну и я не мог не поделиться с вами некоторыми фотографиями и видосиками с этого приключения.
(больше в комментариях)
Как немногие могли заметить, последние 24 часа я пропал из сети, статус онлайна обновлялся дай бог раз в 4 часа, но на сообщения особо не отвечал. Бустеры всё знали, теперь время раскрыть тайну и другим. Всё просто, я на сутки гонял на поиск в соседней области, а как оказалось, со связью там вообще беды. Ну и я, после того как довольно долго не мог нормально посетить лесные поиски и помогал только на городских, с радостью искал в лесу, а болото которое я проходил в своих болотоходах, м-м-м... Короче да, выбрался из города и отдыхал от него.
Ну и я не мог не поделиться с вами некоторыми фотографиями и видосиками с этого приключения.
(больше в комментариях)
👍87❤23🔥6❤🔥4🤔3😁2🕊2
This media is not supported in your browser
VIEW IN TELEGRAM
❤121😱30🤔13🤩7🔥5👍3💅3❤🔥2😁2💊1👾1
storytelling-1.20.1-523.jar
17.5 MB
@Nord_in, лови билд, я исправил баг с улетающей в космос Лайей
🥰92👻10🍓9🔥4🙈2💘2😁1💊1
Бессонный кодер
Думали эпопея с компьютером закончилась? Не-а. Спустя пару деней с прошлого поста проблема вернулась и стала происходить раз в 2-3 дня. А с 20 декабря по 10 раз за день... Что я только не сделал, снёс винду, переустановил все драйвера, пересобрал комп, но…
Нет ничего стабильнее чем приколы с моим компом. Помните ту проблему? Последнее время я стал опять ловить её... Но в этот раз я чётко ловил её когда у меня училась нейронка и параллельно я пытался открыть видео на ютубе.
И тут у меня сложилось 2+2, я открыл OCCT и запустил Power Test. И обнаружил то чего я и ожидал. У меня была просадка напряжения по 12V и 3.3V линиям.
Блок Питания has been imposter.
Купил сегодня новый, поставил в комп и запустил тест. Просадок нет, комп не отрубается и я могу хоть под Power Test открыть майн и видео на ютубе.
Принимаются ставки через сколько времени у меня опять что-то случится.
И тут у меня сложилось 2+2, я открыл OCCT и запустил Power Test. И обнаружил то чего я и ожидал. У меня была просадка напряжения по 12V и 3.3V линиям.
Блок Питания has been imposter.
Купил сегодня новый, поставил в комп и запустил тест. Просадок нет, комп не отрубается и я могу хоть под Power Test открыть майн и видео на ютубе.
🔥67❤🔥21🤩4🙏3❤2🙉2🗿1
1806619.rtf
123.9 KB
Разбираемся с новым постановлением РКН: что изменится на самом деле?
Многие увидели громкие заголовки о новом постановлении Роскомнадзора, но новостники, как мы знаем, любят добавить драмы. Давайте разберёмся, что там по факту.
Как было раньше?
🔹 Операторы связи не передавали Роскомнадзору данные о каждом пользователе.
🔹 ТСПУ (технические средства противодействия угрозам) видели только источник и назначение трафика, но не знали, кто именно отправил запрос.
Что изменится?
Теперь операторы обязаны передавать в РКН:
✅ IP-адреса пользователей (IPv4+IPv6)
✅ Данные оборудования (уникальные идентификаторы)
✅ Оперативные обновления в случае изменения данных
Что это значит для пользователей?
1️⃣ Повышение цен на интернет 📈
Операторам связи придётся тратить деньги на новые системы учёта, а расходы, скорее всего, лягут на пользователей.
2️⃣ Больше блокировок VPN 🚫
Если ваш интернет-трафик идёт только в один адрес, а других запросов нет – это признак VPN. Теперь такие случаи могут отслеживаться и, возможно, приводить к блокировке. Это может сократить число работающих VPN и увеличить их стоимость.
3️⃣ Быстрее находить нарушителей 🕵️
Если кто-то совершает незаконные действия в интернете, правоохранительные органы теперь смогут быстрее его идентифицировать.
Всё это может и будет использоваться для борьбы с преступностью в интернете, но и очень сильно похоже на борьбу с обходами блокировок. Вот так вот.
Многие увидели громкие заголовки о новом постановлении Роскомнадзора, но новостники, как мы знаем, любят добавить драмы. Давайте разберёмся, что там по факту.
Как было раньше?
🔹 Операторы связи не передавали Роскомнадзору данные о каждом пользователе.
🔹 ТСПУ (технические средства противодействия угрозам) видели только источник и назначение трафика, но не знали, кто именно отправил запрос.
Что изменится?
Теперь операторы обязаны передавать в РКН:
✅ IP-адреса пользователей (IPv4+IPv6)
✅ Данные оборудования (уникальные идентификаторы)
✅ Оперативные обновления в случае изменения данных
Что это значит для пользователей?
1️⃣ Повышение цен на интернет 📈
Операторам связи придётся тратить деньги на новые системы учёта, а расходы, скорее всего, лягут на пользователей.
2️⃣ Больше блокировок VPN 🚫
Если ваш интернет-трафик идёт только в один адрес, а других запросов нет – это признак VPN. Теперь такие случаи могут отслеживаться и, возможно, приводить к блокировке. Это может сократить число работающих VPN и увеличить их стоимость.
3️⃣ Быстрее находить нарушителей 🕵️
Если кто-то совершает незаконные действия в интернете, правоохранительные органы теперь смогут быстрее его идентифицировать.
Всё это может и будет использоваться для борьбы с преступностью в интернете, но и очень сильно похоже на борьбу с обходами блокировок. Вот так вот.
💔79👍17❤🔥5👎5🤡3😱2🍌2🤔1🌚1🌭1🍾1
🎥 Длинный кадр: зачем он нужен и как работает в играх и кино?
Длинный план, или непрерывный кадр — это когда камера движется без монтажных склеек. В кино такой приём создаёт ощущение, что ты не наблюдаешь, а живёшь внутри сцены.
🧠 Как он работает?
Погружение. Без склеек мозг перестаёт замечать «монтаж» и начинает воспринимать происходящее как реальность.
Напряжение. Нет перерывов. Сцена становится непрерывным потоком, в котором ты либо с героями, либо вне сцены.
Контроль внимания. Автор сам ведёт камеру, сам показывает, на что ты должен смотреть — как в театре, но без кулис.
🎮 Самое интересное - этот приём работает не хуже даже в условиях игр!
Пролог The Last of Us — один из сильнейших примеров. Не смотря на то что игрок управляет камерой, она всегда идёт за персонажем. А важные моменты выделяются так, что игрок несознательно поворачивает взгляд на них. Ты не просто понимаешь, что что-то случилось. Ты чувствуешь, как рушится мир.
🎬 Невероятно крутое исполнение этой техники есть в фильме "1917", оно делает этот приём основой всего повествования. Ощущение присутствия, тревожность, вовлечённость — всё завязано на том, что камера не мигает.
📌 Визуально — это сложно. Технически — это вызов. Но если сделать хорошо, длинный план превращается в эмоциональный мост между игроком и персонажем.
#gamedevblog
Длинный план, или непрерывный кадр — это когда камера движется без монтажных склеек. В кино такой приём создаёт ощущение, что ты не наблюдаешь, а живёшь внутри сцены.
🧠 Как он работает?
Погружение. Без склеек мозг перестаёт замечать «монтаж» и начинает воспринимать происходящее как реальность.
Напряжение. Нет перерывов. Сцена становится непрерывным потоком, в котором ты либо с героями, либо вне сцены.
Контроль внимания. Автор сам ведёт камеру, сам показывает, на что ты должен смотреть — как в театре, но без кулис.
🎮 Самое интересное - этот приём работает не хуже даже в условиях игр!
Пролог The Last of Us — один из сильнейших примеров. Не смотря на то что игрок управляет камерой, она всегда идёт за персонажем. А важные моменты выделяются так, что игрок несознательно поворачивает взгляд на них. Ты не просто понимаешь, что что-то случилось. Ты чувствуешь, как рушится мир.
🎬 Невероятно крутое исполнение этой техники есть в фильме "1917", оно делает этот приём основой всего повествования. Ощущение присутствия, тревожность, вовлечённость — всё завязано на том, что камера не мигает.
📌 Визуально — это сложно. Технически — это вызов. Но если сделать хорошо, длинный план превращается в эмоциональный мост между игроком и персонажем.
#gamedevblog
🔥55❤🔥12👍10❤2👏1🤔1🙏1🍓1🤗1🙊1
🎮 Что такое дигиез и зачем он нужен в играх и кино?
Дигиез (или же диегезис) — это внутренняя реальность произведения. Она может отличаться от нашей, но внутри себя логична и последовательна.
Пример из игр: герой получает пулю в сердце и не умирает, а теряет здоровье. Это не баг. Это правило мира. Внутри игры это естественно, даже если в реальности это было бы странно.
📽 В кино термин «дигетическое» часто применяют к звукам:
Дигетическая музыка или звуки — те, что слышат сами персонажи произведения: речь, шаги, скрёб льда.
Недигетическая музыка — для зрителя, как фон или драматическая подложка, персонажи вселенной её не слышат.
🧠 Почему это важно?
Потому что нарушение дигиеза ломает погружение. Если мир сам себе противоречит — зритель теряет доверие.
🎮 В геймдеве дигиез особенно важен: игрок не просто смотрит — он действует в рамках этих правил. И должен понимать, как этот мир работает.
Хороший дигиез — это когда ты не задаёшь вопросов. А просто знаешь как должно быть.
#gamedevblog
Дигиез (или же диегезис) — это внутренняя реальность произведения. Она может отличаться от нашей, но внутри себя логична и последовательна.
Пример из игр: герой получает пулю в сердце и не умирает, а теряет здоровье. Это не баг. Это правило мира. Внутри игры это естественно, даже если в реальности это было бы странно.
📽 В кино термин «дигетическое» часто применяют к звукам:
Дигетическая музыка или звуки — те, что слышат сами персонажи произведения: речь, шаги, скрёб льда.
Недигетическая музыка — для зрителя, как фон или драматическая подложка, персонажи вселенной её не слышат.
🧠 Почему это важно?
Потому что нарушение дигиеза ломает погружение. Если мир сам себе противоречит — зритель теряет доверие.
🎮 В геймдеве дигиез особенно важен: игрок не просто смотрит — он действует в рамках этих правил. И должен понимать, как этот мир работает.
Хороший дигиез — это когда ты не задаёшь вопросов. А просто знаешь как должно быть.
#gamedevblog
👍70❤9🤯7🍓4❤🔥3🤩2💋2🔥1🎄1