Технологический Болт Генона
8.23K subscribers
3.04K photos
367 videos
214 files
3.9K links
До Декарта никогда не существовало рационализма.

Музыкальный Болт Генона: @mus_b0lt_Genona
Мемный Болт Генона: @mem_b0lt_Genona
Кадровый Болт Генона @kadr_b0lt_Genona

Обратная связь: @rusdacent
Download Telegram
🧠 Как 3 вечера анализа и оптимизаций дали минус 1 CPU и +40% к скорости ответов API

👀 Всё началось с того, что я случайно (ну как случайно, проблема была всегда, просто я первый задался вопросом - "почему?") заметил, что один Python-сервис на staging потребляет до 2.5 CPU.
Для сравнения — весь namespace потребляет около 6 CPU. То есть один сервис ест почти половину ресурсов. И это при том, что это не какой-то нагруженные сервис, это синхронный API-сервис, да еще и без нагрузки, это же staging.

Стало интересно — а что там внутри вообще так жрёт?

📦 Запустил профайлинг CPU через Pyroscope и… понеслось.

UI у Pyroscope меня не устроил — флеймграфы красивые, но неудобные для глубокого анализа.
📥 Поэтому я выгрузил дамп как pprof файл и открыл его через go tool pprof.
Так мне удобнее, быстрее и информативнее.

📊 Профилирование показало несколько важных узких мест:

🧱 Проблема №1: конвертация данных из MySQL

Самое "жирное" место — conversion.pyMySQLConverter.row_to_python.
Это код, который конвертирует строки из БД в Python-объекты на каждый запрос.

Наиболее затратные конвертации:
- _DECIMAL_to_python
- _INT_to_python
- _JSON_to_python
- _DATETIME_to_python
- _STRING_to_python

Решение:

📌 Использовал C extension у mysql-connector-python
Официальная документация: https://dev.mysql.com/doc/connector-python/en/connector-python-cext.html

📉 Результат:
- Минус 1 CPU
- До +40% ускорение некоторых endpoint’ов

🧠 Проблема №2: неэффективный Python-код

Пример: функция change_type, которая:
- делает кучу проверок в логике
- использует неэффективные структуры данных, например, list для поиска вместо set / dict
- обрабатывает сразу множество возможных вариантов логики, в зависимости от входных данных

Решение:

📌 Переписал участок без изменения бизнес-логики:
- заменил структуры данных
- добавил ранние выходы
- убрал дублирующиеся проверки

📌 Cognitive complexity снизилась, временная сложность — тоже. Производительность выросла.

⚠️ Проблема №3: код, который не нужен, но работает

Профайлинг показал, что куча ресурсов уходит на код, который вообще не должен уже как год использоваться. Но код активно выполняется. WTF!?

🤷‍♂️ Функции вызываются, результат — пустой, но код исполняется. Причём часто и тяжело.

Решение:

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

🐘 Проблема №4: Импорты. Много. Дорого.

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

Конкретно — на _find_and_load, часть механизма импорта, который занимается поиском, загрузкой и инициализацией модулей.

📌 Почему это важно?
- Импорты выполняются на каждый старт сервиса.
- Чем жирнее и зависимее ваши модули, тем дольше и тяжелее проходит импорт.
- Это не всегда очевидно, но можно видеть в профайлинге: _find_and_load, _find_and_load_unlocked, _load_unlocked – вот это всё.

📊 У нас в сервисе модулей реально много.
Многое из них – просто "свалены в кучу", где-то грузятся тяжёлые зависимости. Да и сложная структура проекта вынуждает иметь большое количество импортов.
И, как итог, CPU тратится на то, что можно было бы стремиться избежать.

Что с этим делать:
- Разделять модули по функциональности.
- Отложенные импорты (lazy import) – практика может применяться (но есть нюансы), если модуль нужен только в конкретной функции.
- Минимизировать зависимости и импорт только того, что действительно нужно.
- Следить за импортами в __init__.py — именно они могут тянуть за собой пол кодовой базы.

Следующий шаг: memory профайлинг. Pyroscope в нашей инфрастуктуре такое не умеет и нужно приседать, но надеюсь дойдут руки и до RAM.
👍36🤡71👎1
Forwarded from Об ЭП и УЦ
Уязвимость Яндекс Браузера

25 марта 2025 года Google выпустила обновление, исправляющее уязвимость нулевого дня в браузере Google Chrome. Эксплойт, кстати, был обнаружен Лабораторией Касперского.

Спустя всего 2 дня выходит обновление Chromium ГОСТ👍.
А как там самый популярный браузер из реестра отечественного ПО? А там всё печально. Для актуальной версии Яндекс Браузера соответствует двухмесячная версия Chromium 132.0.6834.955.

Не тот браузер добавили в реестр отечественного ПО.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁41👍6🤡6🤷‍♂1🫡1
Forwarded from I’m CTO, bitch
Помните, в прошлом году делали софт для умного дома Дилдок.Лайф. Там у них мега-навороченные умные унитазы с голосовым ассистентом. Мы их предупреждали, что такое случится, но они не слушали и требовали делать всё по их ТЗ.

И вот итог:
1. Дата-центр лежит уже 3 часа.
2. Их умные унитазы из-за отсутствия соединения отказываются смывать. Ручной кнопки смыва в них не предусмотрено, всё только через голосового помощника или с телефона управляется.
3. Вся их умная бытовая техника тоже не работает или заглючила. Даже чайники не работают. А роботы-пылесосы активировали режим «skynet».
4. Техдир из Лайфа просит нас срочно что-то сделать, любые деньги предлагает.

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

#стояделали
🤣708🔥5🤡4👍2🥱1
I’m CTO, bitch
Помните, в прошлом году делали софт для умного дома Дилдок.Лайф. Там у них мега-навороченные умные унитазы с голосовым ассистентом. Мы их предупреждали, что такое случится, но они не слушали и требовали делать всё по их ТЗ. И вот итог: 1. Дата-центр лежит…
И этот пост понятно к чему. Сегодня 12 часов валялась обоссавшись и обосравшись зона ru-central1-b в Яндекс.Облаке и вроде как сейчас приходит в более или менее живое состояние. Всем кто в ночи будет чинить свои сервисы мои соболезнования и лучи поддержки.

Но проблема в том, что современные "хипсторы" решили почему-то что облака (не только AWS, GCP и т.д., а в более широком смысле) круто и надёжно, поэтому всё теперь привязывается и создаётся в них. Всё конечно же ради вашего удобства (нет)

И если пост выше это типа юмор (тоже нет), то вот почитайте реальную историю о том как человек не может воспользоваться нормально посудомоечной машиной, потому что ей нужен WiFi и приложение

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

Более того, для использования приложения нужно привязать посудомойку к Wi-Fi, настроить облачный аккаунт для какой-то системы под названием Home Connect, и только тогда вы сможете пользоваться всеми функциями машины.
. . .
Приложение? Я бы мог понять наличие удобных функций для тех, кому они нужны. Как в моём новом холодильнике (который я решил не подключать к WiFI): у него есть приложение, позволяющее мониторить температуру внутри или проще искать коды ошибок. Если бы мне нужны были эти дополнительные возможности, которых не было в моём старом холодильнике, то их можно было бы получить.

Но обязательное требование приложения для доступа к функциям, которыми раньше можно было управлять кнопками на самой посудомойке, или по-прежнему можно, если заплатить на 400 долларов больше за «крутую» модель 800? Это печально.
. . .
Что можем сделать мы?

Не думаю, что мы должны прощать подобное производителям.

Во-первых, это позволяет дизайнерам устройств лениться.

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

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

Абонентской платы пока нет, что означает один из двух вариантов:

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

В-третьих, это дыра в безопасности вашей локальной сети.

Не буду я подключать посудомойку к вашему дурацкому облаку
https://habr.com/ru/companies/ruvds/articles/894602/

Оригинал
I won't connect my dishwasher to your stupid cloud
https://www.jeffgeerling.com/blog/2025/i-wont-connect-my-dishwasher-your-stupid-cloud

Если что, то Jeff Geerling достаточно известный в узких кругах человек

https://xn--r1a.website/tech_b0lt_Genona/3810
https://xn--r1a.website/tech_b0lt_Genona/3814

В целом, наблюдать за всем этим печально, потому что люди ради своего как бы удобства, перестают владеть не только купленным софтом (в самом широком смысле), но теперь уже и железом. Более того, радостно продолжают голосовать за это рублём.
👍37💯125🤡2
Технологический Болт Генона
И этот пост понятно к чему. Сегодня 12 часов валялась обоссавшись и обосравшись зона ru-central1-b в Яндекс.Облаке и вроде как сейчас приходит в более или менее живое состояние. Всем кто в ночи будет чинить свои сервисы мои соболезнования и лучи поддержки.…
Это ебануться

А есть кто на канале из админов https://xn--r1a.website/yandexcloud_chat? Можно пожалуйста бан снять с @rusdacent?

Я в вашем официальном чате дал человеку ссылку на ваш же официальный канал с алертами (https://xn--r1a.website/yandexcloudalerts) и меня забанил ваш же бот.

UPD: Всем спасибо, из бана вытащили.
🌚46😁43🤡15🆒4🤣3🤷‍♂1❤‍🔥1👏1🙈1💅1
Технологический Болт Генона
И этот пост понятно к чему. Сегодня 12 часов валялась обоссавшись и обосравшись зона ru-central1-b в Яндекс.Облаке и вроде как сейчас приходит в более или менее живое состояние. Всем кто в ночи будет чинить свои сервисы мои соболезнования и лучи поддержки.…
При обсуждении под постом https://xn--r1a.website/tech_b0lt_Genona/5163 я вспомнил, что хотел написать на похожую тематику ранее, но как-то замотался и забыл

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


Раньше так же было сложно представить ситуацию с принтерами, как в посте с посудомоечной машиной, но прошло время и мы в моменте, когда чуть ли уже не последний крупный производитель принтеров залез в "очко".
Brother начал блокировать картриджи сторонних производителей после принудительного обновления прошивки принтеров. Также в Brother запустили процесс удаления старых версий прошивок своих принтеров и МФУ с портала техподдержки.
. . .
Россманн признался, что раньше говорил многострадальным владельцам печатающих устройств HP или Canon, столкнувшимся с проблемами DRM картриджей: «Купите лазерный принтер Brother за 100 долларов, и все ваши беды будут решены». Но теперь и Brother пошла по пути HP или Canon.

Brother начал блокировать картриджи сторонних производителей после принудительного обновления прошивки принтеров
https://habr.com/ru/news/888020/

Оригинал
Brother accused of locking down third-party printer ink cartridges via forced firmware updates, removing older firmware versions from support portals
https://www.tomshardware.com/peripherals/printers/brother-accused-of-locking-down-third-party-printer-ink-cartridges-via-firmware-updates-removing-older-firmware-versions-from-support-portals

И это ещё половина проблемы. Софт, который "вставляет палки в колёса", ещё и ломает ваше "железо"
Американская компания HP Inc. окончательно «убила» свои принтеры и многофункциональные устройства (МФУ). Как пишет портал Ars Technica, она выпустила прошивку, которая не дает печатать даже на принтерах, в которых установлены оригинальные расходные материалы.

Опасная прошивка имеет номер 20250209 и ряд устройств, в том числе LaserJet MFP M232-M237 она превращает в «кирпич». Точное количество моделей, которых зацепила проблема, пока не установлено.

Принтеры и МФУ отказываются печатать, даже если установить в них только что купленный оригинальный картридж. Они выдают ошибку с кодом 11. Пользователи начали жаловаться на проблему, притом как на сторонних ресурсах, так и на официальном форуме HP, однако к моменту публикации материала у HP не было готового ее решения.

HP доигралась. Новая прошивка «окирпичила» ее принтеры, теперь они не работают даже с оригинальными картриджами
https://www.cnews.ru/news/top/2025-03-11_hp_doigralaskrivaya_proshivka

Оригинал
Firmware update bricks HP printers, makes them unable to use HP cartridges
https://arstechnica.com/gadgets/2025/03/firmware-update-bricks-hp-printers-makes-them-unable-to-use-hp-cartridges/

Так что ждём картриджи с моющими средствами без которых ваша посудомойка откажется работать.

ЗЫ С автомобилями такая же ситуация, если не хуже.
👍27🤡8😱3🫡3💊32🔥1😁1
В этот замечательный день хочу отметить одного из преданных подписчиков, который нет-нет, да нагрянет почитать посты (а может быть и не читает). Обязательно массово отметится реакциями соответствующими на нескольких постах сразу и будет таков.

С праздником тебя, фанат! ❤️
🤡306😁10🥱4👎2💊21🥴1
Forwarded from Стой под стрелой (Nikita Prokopov)
Когда хожу в спортзал, хочется включить подкаст по-тупее. Организм качает кровь в мышцы, мозгу остается меньше, и айкью падает на 10-15 пунктов. Идеально заходит Завтракаст: бодро, весело, глупо, неважно.

И есть у них один товарищ, который постоянно пересказывает критику решений Евросоюза в сторону Эпла. Типа, душат, гады, бедную корпорацию. И оно звучит, эээ, странно. «Евросоюз потребовал от Эпла открыть Эйрдроп для Андроида» — «вот негодяи, вот тупые». Но, собственно, почему? Мы же, как пользователи, только выиграем? Как может кто-то в здравом уме требовать более закрытой экосистемы (ну кроме самого Эпла, конечно)? Это же чистые минусы! Или с магазинами сторонних приложений — ну это же кайф, если их откроют, какие минусы-то? При этом сам же этот чел в следующей новости рассказывает, как играет в игры с Нинтнендо Свич и Плейстейшн на эмуляторе и нигде у него не ёкает.

В девяностых, когда компьютеры только начинались, человечество делало протоколы. TCP, IMAP, IRC, XMPP, HTTP — вот тебе спека, мы все по ней работаем, можешь наше приложение взять, можешь стороннее, можешь сам написать. И писали! Ты мог читать почту и сидеть в чатах из сотен разных программ, были получше, были похуже, были очевидные лидеры, но в целом никто не диктовал тебе, что делать. Производителям же, чтобы конкурировать, приходилось реально стараться — побеждал лучший, а не тот, у кого сервер. Лучший для пользователя, а не для корпорации.

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

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

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

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

Ну вот. Я не жалуюсь, просто хочу, чтобы все четко все понимали — мы в довольно хреновой и неудобной для нас (пользователей) ситуации, и любой способ выхода из нее — благо. Даже если это государственное регулирование. МЫ ВСЕ ТОЛЬКО ВЫИГРАЕМ, если Евросоюз заставит Эпл открыть магазин приложений или протокол Эйрплей. Это буквально в наших, пользователя, интересах. МЫ НИЧЕГО НЕ ТЕРЯЕМ.

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

Да, мы пришли туда, куда пришли, исключительно рыночными методами. Я могу понять разочарование в идеалах, что рынок всегда находит наилучшее решение. Но что ж делать? Раз уж не нашел, давайте ему поможем. В крайнем случае, не забывайте, на чей вы стороне (своей), а корпорации как-нибудь и без нас выживут.
36👍12🤡7💯6🔥1🤔1
Over the past week, she’s made very good progress independently but once a day she would get stuck because the AI isn’t doing what she’s expecting. Unfortunately, she doesn’t know full-stack development well enough to prompt it towards resolution or how to edit the code herself. When that happens, I come to her rescue.
. . .
Many software engineers I speak to have the wrong outlook on this matter and don’t see the danger they are really in.

“AI can never replace me”.

They say. And they are right, but the critical thing they don’t understand is:

It doesn’t need to.

It just needs to be able to deliver 80% of your output at 20% of your cost to find your role on the chopping block very fast. It makes ruthless financial sense if you think about it.

The impact of AI adoption is guaranteed to be a net displacement of labor. Where a company would previously have 30 software engineers working on a product or feature, in 5 to 10 years, they will have 20 AI prompters and only 10 software engineers.
. . .
The way to survive in this changing world is to stay ahead of the curve. Those who thrive in the transitions will have one of two things going for them, or ideally both:

- They become seriously great at architecture and system design to gatekeep the subpar code the AI coders will pump out.

- They invest heavily in soft skills since the ability to lead and manage groups of semi-coders will become more valuable.

All in, the future looks bright for the opportunist but bleak for the complacent.

The Death of the Software Engineer by a Thousand Prompts
https://verdikapuku.com/posts/the-death-of-the-software-engineer-by-a-thousand-prompts/
👍9👎52🤡1
Автоботы, трансформируемся суверенизируемся! 🫡

Linux Foundation Europe, the nonprofit organization enabling mass innovation through open source in Europe and around the world, today announced the official launch of the NeoNephos Foundation. This new initiative is dedicated to fostering collaboration and innovation around open cloud infrastructure, digital sovereignty, and next-generation cloud-native technologies in Europe.
. . .
NeoNephos will focus on several key areas, including:

- Cloud Infrastructure: Developing and promoting open, interoperable cloud technologies tailored to the needs of European enterprises and governments.
- Digital Sovereignty: Ensuring that organizations retain full control over their data and infrastructure while maintaining compliance with European regulations.
- Collaboration & Innovation: Providing a vendor-neutral environment where contributors can build, deploy, and scale cloud-native solutions that support a thriving digital economy.

The Linux Foundation Announces the Launch of NeoNephos to Advance Digital Autonomy in Europe
https://linuxfoundation.eu/newsroom/the-linux-foundation-announces-the-launch-of-neonephos-to-advance-digital-autonomy-in-europe
😁13🤡5💊4🥱2