Стек: React, TypeScript, ESLint 9, IDE: VS Code.
Импорты в приложении – самодокументируемая шапка файла. Взглянув на неё, можно быстро сделать вывод о содержимом: какие библиотеки, компоненты, типы и стили - если речь о React-компоненте - используются в файле, и создать общее впечатление о модуле.
Хорошо, когда эта «шапка» имеет единый порядок: мы быстро можем увидеть, например, какие типы использует файл, много ли компонентов он содержит и т.п. Короче говоря – это ускоряет и точечный, и общий анализ файла. Ну и просто приятно, когда код содержится в порядке и подчиняется единым правилам.
Читать далееСамые интересные новости финансов и технологий в России и мире за неделю: Трамп решил раскрыть все данные об инопланетянах, в UK хотят свою платежную систему МИР, ГОСТ на длину бананов, ЦБ хочет собрать реестр финблогеров, AI-агент OpenClaw устроился работать в OpenAI, а также Wired разоблачает гей-мафию в Кремниевой долине.
Читать далееИ имя ему - eMCP Samsung серии KM. Дело в том, что в 2012-2014 году, Samsung выпускала откровенно дефектные микросхемы флэш-памяти. Проблема касалась всех устройств с eMMC (не NAND) флэхами Samsung: они работали-работали и в один момент просто сами по себе отказывали, переводясь в режим только для чтения. Для пользователя это ощущалось так: смартфон резко зависал, после передергивания АКБ включался и просто висел на заставке или падал в рекавери с надписями в духе "Failed to mount partition"...
Читать далееТехнический прогресс вновь, как и в XIX веке, делает рабочую борьбу актуальной.
ИИ-автоматизация в парадигме борьбы за рабочий класс это экзистенциальная угроза: с исчезновением потребности в труде рабочего пропадает и власть, которую давала возможность удерживать свой труд.
Но если отойти назад, это не имеет смысла в общей картине: быть рабочим никогда не было человеческой мечтой, а постоянная занятость никогда не означала свободу. Всю историю люди мечтали об искусственном слуге, который будет делать за них работу — эти мотивы есть в мифах с тех пор, как сохранились записи о мифах; вполне возможно, они возникли с переходом к земледелию и появлением крестьянина — первого рабочего.
Читать далееЧто такое дерево метрик и зачем оно нужно?
Привет, меня зовут Денис. Я старший продуктовый аналитик, и больше 5 лет строю системы метрик в крупных IT-компаниях, включая Тинькофф. Одна из самых частых и болезненных проблем, которую я видел — когда у команды есть цель (скажем, «увеличить выручку»), но нет единого понимания, за какие именно рычаги тянуть и как действия одного отдела влияют на результат другого.
Привет! Меня зовут Денис. Уже более 5 лет работаю Senior Product Analyst в крупнейших IT-компаниях России, включая Тинькофф. Разрабатывал системы аналитики с полного нуля, провёл огромное количество A/B тестов и знаю всю внутреннюю кухню больших корпораций изнутри.
Ко мне на карьерные консультации часто приходят с запросом в духе: «Я уже 2 года работаю, почему я всё еще джун?» или «Как прыгнуть в мидлы, если на работе дают только скучные выгрузки?».
Грейды — это не про то, сколько библиотек в Python ты выучил. Это про то, насколько сильно у твоего лида и продакта болит голова, когда они отдают тебе задачу.
Читать далееПошаговый разбор процесса: от идеи до работающего бота с оригинальным движком Dino из Chromium
В этой статье я расскажу:
Читать далееКак Вы могли заметить, у микроконтроллеров STM32 секторы NOR Flash памяти обладают разным размером: 16kByte(4 шт), 64kByte (1 шт), 128kByte ( 7+ шт.).
Это накладывает определенную специфику на программирование микроконтроллеров STM32.
Из каких секций обычно состоит Flash память микроконтроллерной программы?
В этом тексте я предлагаю решение проблемы разметки памяти для случая работы с микроконтроллерами STM32.
Читать далееЧетыре года я была волонтёром в приюте для животных. Это не про красивые фотографии с пушистыми котиками - это про ежедневный уход, уборку, лечение, адаптацию и работу с людьми. Самое тяжёлое - видеть стресс у «вернувшихся» животных. Ещё вчера у них был человек, дом, надежда, а сегодня снова клетка, шум и тревожное ожидание. Некоторые так и не находят семью. Самое страшное для животного - прожить жизнь и так и не получить собственного дома хотя бы на один день.
Читать далееЕсли вы следили за моими предыдущими статьями, то знаете, что я одержим скоростью в задачах оптимизации.Сначала была «точка»: мы приручили задачу коммивояжера (TSP), решив её векторным способом — 10 000 точек за 0.4 секунды. Затем была «топология»: мы усложнили мир, победили злую спираль и упрямый трилистник, научились работать с графами (искать тупики) и упаковали 45 000 стандартных контейнеров в трюм, учитывая LIFO, весовые лимиты и еще 4 критических параметра. Тогда наш воркер на FastAPI + Redis справлялся за 2 минуты. И вот подошли к царь-задаче Упаковка разногабарита. Результатом этой работы станет публичный API. Логика простая: вы отправляете JSON с параметрами груза и склада (нужен ли обсчет крена, лимиты по весу, LIFO), а на выходе получаете готовый план загрузки. Но чтобы этот API не «висел» под нагрузкой, мне нужно было решение, которое работает не минуты, а доли секунды. Результатом этой работы станет публичный API. Логика простая: вы отправляете JSON с параметрами груза и склада (нужен ли обсчет крена, лимиты по весу, LIFO), а на выходе получаете готовый план загрузки.
Читать далееВ этой статье расскажу как запустить рекламу в чат-ботах Телеграм, какие есть форматы и какие ниши подходят лучше.
За год работы открутил больше миллиона на чат-ботов для клиентов. Это помогло разобраться в том, какая аудитория там сидит и какие практики работают.
Читать далееИногда книга начинается с одной статьи, опубликованной в нужный момент и в нужном Хабре и в моём случае всё действительно началось с публикации про аллокаторы, которая несмотря на обилие технического материала, кода и схем набрала больше всего плюсов среди моих статей на околоплюсовую и игродев разработку. А дальше и сам цикл Game++ постепенно вырос из отдельных технических размышлений о C++, архитектуре движков и производительности в связный нарратив. За спиной Game++ стоит еще больше узкотехнических материалов в блоге и вики моей компании и я бы рад ими поделиться, да и делюсь периодически, но сами понимаете выкладывать можно не всё и даже из то, что выложено на Хабре, частенько было подрезано, ибо NDA и секретные технологии-бла-бла-бла. Та статья стала точкой, когда я увидел, что разрозненные тексты на самом деле образуют скелет будущей книги, нужно лишь перестать относиться к ним как к «постам» и начать воспринимать как главы. Идея написать книгу не пришла просто так, и несколько не связанных между собой людей и компаний связались и предложили переписать цикл статей в виде книги.
Читать далееПривет, Хабр!
Меня зовут Алексей Бородин (aka ZonD80). Обычно я не пишу о своих разработках, но в этот раз решил поделиться опытом — потому что в процессе разработки GUI-агента я неожиданно упёрся в вещи, которые звучат смешно, пока не попробуешь: чекбоксы и радиокнопки.
Впереди - небольшое путешествие в AI, GUI и смысл жизни
Читать далееВ этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI-веб-сервер, с помощью которого можно запускать произвольные WSGI-приложения.
Читать далееЭта статья - перевод поста в блоге Alex, Baton Corporation Team Lead, вышедшего 20 февраля 2026 г.
Я публикую этот перевод, потому что сам много экспериментировал с переносом на этап сборки применение Tailwind стилей, убрав их из runtime. Хоть мне и не удалось добиться таких впечатляющих результатов, как автору статьи, опыт был сугубо положительный, скорость загрузки и многие другие метрики, связанные с отзывчивостью интерфейса, ощутимо выросли.
Далее следует переводВ данной статье хочу поделиться своим опытом по абстрактным классам. Думаю это будет полезно как разработчикам, только начинающим свой путь, так и уже имеющим опыт.
В материале можно посмотреть, как изящно связать свойства и абстрактные классы с реализацией принципа DRY .
Для начал кратко пробежимся по определениями и терминам, и далее ответим на вопросы, которые могут логично вытекать из этих определений.
Абстрактные классы - это базовые классы, определяющие каркас с методами, обязательными для реализации в наследниках и служащими для создания интерфейсов, однако сами экземпляры таких классов создать нельзя.
Абстрактные методы - методы с декоратором @abstractmethod, которые обязаны быть реализованы в дочерних классах.
Абстрактный класс может содержать как обычные, так и абстрактные методы.
Свойство - реализуется через декораторы @property (для чтения) и @<name>.setter (для изменения и валидации) обеспечивая инкапсуляцию, делая API удобным, при этом позволяя менять внутреннюю реализацию без изменения внешнего кода.
Читать далееПрогремел очередной релиз, Google DeepMind 19 февраля 2026 года выпустила свою новую модель - Gemini 3.1 Pro.
Это стало неожиданностью даже для искушенного ИИ-сообщества. Обычно Google обновлял версии с шагом 0.5 (1.0 - 1.5 - 2.0 - 2.5 - 3.0), но здесь мы впервые видим обновление 3.1. И это при том, что предыдущая версия (Gemini 3 Pro) до сих пор носит гордую приставку Preview и так и не вышла в полноценный релиз. Согласитесь, немного похоже на ситуацию, когда вы ещё не допили чай, а вам уже наливают новую кружку, утверждая, что она горячее.
Но Google явно знает, что делает. Компания заявляет, что 3.1 Pro - это не просто косметическое обновление, а шаг вперёд в фундаментальных рассуждениях. Модель создана для решения задач, где простого ответа недостаточно, и ориентирована на агентные рабочие процессы и глубокое планирование.
Забегая вперёд, скажу, что новинка действительно впечатляет, но, как всегда, есть нюансы. Приятного прочтения!
Читать далееЗападные автомобильные бренды теряют позиции в Китае — их доля рынка падает, прибыль быстро снижается. Лояльность к брендам ослабевает, а покупатели выбирают прежде всего по цене и набору функций.
Как BYD смогла так сильно уронить цену, сохранив маржу выше, чем у Tesla?
Читать далееДоброе время суток! Так уж вышло, что написание статьи подоспело аккурат к празднику. И пока одни раздают поцелуи, а другие принимают в подарок долгожданные носки, я решил подготовить продолжение этой хардкорной разработки.
Со времени первой публикации прошло ровно 3 месяца. За это время переработал многое: добавил полноценный JIT для Xtensa и RISC-V, внедрил кучу оптимизаций в транслятор. Все это старательно тестировал на чипах ESP32, ESP32-C3 и ESP32-C6 (последний — по остаточному принципу, запустил только основной тест, главная отладка шла на первых двух).
Встречайте главные нововведения.
Читать далееКогда я стал решать задачу получения сообщений из Telegram для последующего анализа, понял — не хватает простого и понятного введения во взаимодействие с Telegram в роли клиента, а не бота. Официальная документация Telegram отличается от привычной мне документации в мире Java и Rust как по подаче, так и по качеству. Большинство статьей по запросу "how to load chats from telegram" отсылают к высокоуровневым библиотекам на Python.
Главная цель статьи дать основу для разработки приложений на Telegram на среднем уровне абстракции TDLib и взаимодействие с Telegram c помощью посылки и получения сообщения MTProto. В этой статье я постарался раскрыть как надо читать документацию мессенджера, какие существуют способы взаимодействия с платформой и по каким принципам спроектировано API. Во многих местах я не буду давать детальное описание всех параметров, предоставив вместо этого ссылку на документацию. Задача статьи — дать фундамент для разработки своих сценариев. Несмотря на использование Kotlin, информация из статьи будет полезна для любого языка программирования.
Детально раскрыты следующие сценарии взаимодействия: вход в Telegram зарегистрированным пользователем; получение списка чатов и их типизация (каналы, формы и т. п.); получение сообщений из чата.
Погрузиться в TDLib