«str для людей, а repr для машин» — эту фразу слышали многие, но на практике путаница всё равно остается. Почему функция print() иногда игнорирует ваши настройки? Что такое односторонний фолбэк? И зачем вообще писать оба метода?
Читать далееАвстралийская писательница, технологический аналитик, автор колонок в Wired и Time Джоан Вестенберг описала в своём блоге проблему понедельников, поделилась способами пересобрать рутину и сделать её более осознанной.
Читать далееВ мире Android-разработки существуют различные архитектурные паттерны.
Многие из вас хорошо знакомы с MVVM, и возможно сталкивались с MVP. В последнее время всё чаще звучит аббревиатура MVI (Model-View-Intent). Однако наряду с MVI существует похожий на неё подход – KoTEA (Kotlin The Elm Architecture).
Давайте сравним их и разберём их различия.
Читать далее«Простота — требование, необходимое для обеспечения надёжности», — Эдсгер Дейкстра
Невидимая структура данных
В каждой программе используется стек — стек вызовов. Каждый вызов функции записывает в стек кадр, каждый возврат извлекает его. Он настолько фундаментален, что мы редко о нём задумываемся.
Но когда нам нужен собственный стек или очередь, крайне важно правильно выбрать реализацию.
Однажды я отлаживал вылет прошивки во встраиваемой системе RISC-V. У системы был планировщик задач, использующий очередь для управления ожидающими задачами. При большой нагрузке система вылетала с переполнением стека.
Переполнение стека? Очередь должна была находиться в куче, а не в стеке.
Проблема заключалась не в самой очереди, а в том, как она была реализована. Для очереди использовался связанный список, и каждый вызов malloc() выполнял распределение из пула памяти, делившего пространство со стеком. Под нагрузкой очередь разрасталась, пул фрагментировался и рано или поздно стеку не оставалось места для роста.
Как же мы устранили проблему? Заменили очередь на основе связанного списка кольцевым буфером — очередью на основе массива фиксированного размера, получив при этом отсутствие динамического распределения, предсказуемое использование памяти и десятикратный рост скорости.
Читать далееРазбираем возможности новой ChatGPT 5.3. Сравнение с Claude 4.6 и Gemini 3.1, бенчмарки Codex. Подробная инструкция как использовать нейросеть в РФ без VPN.
Читать далееПисать быстрые GPU‑ядра вручную долго и требует узкой экспертизы: нужно понимать модель памяти, эффективные паттерны доступа к памяти, ограничения конкретного бэкенда и уметь быстро разбираться в compile и runtime ошибках. При этом выигрыш от кастомного kernel'а может быть очень заметным. Поэтому автоматизация и упрощение процесса разработки ядер — практически важная задача.
В этой статье расскажу о KernelEvo — новом фреймворке от команды «Вычислительный интеллект» Института AIRI, позволяющем по исходному коду автоматически искать эффективные cuda и triton реализации. Ключевая идея простая: вместо ручного цикла «написал → проверил → увидел ошибку → переписал» мы строим автоматический search loop. В типовом сценарии на одну задачу уходит до ~1 млн токенов, что делает такой поиск достаточно выгодным для регулярных запусков.
Подробности далее.
Читать далееУ многих компаний уже есть практически всё, чтобы внедрить полноценное обучение сотрудников после приема на работу (онбординг) или освоения нового продукта: база знаний с рабочими статьями на внутренней платформе для совместной работы и АИС по клиентам. Они могут быть интегрированы между собой или существовать отдельно — на конечный результат это влияет мало. Для полного счастья остается только сделать семейство обучающих курсов — а до этого руки доходят хорошо если через один год.
Читать далееМы привыкли, что запустить проект можно за вечер, просто собрав его из готовых кирпичиков. Но что, если бы каждый import стоил денег?
Бесплатные фреймворки, открытые базы данных и возможность заглянуть в исходники стали для нас абсолютной нормой, которую мы воспринимаем как само собой разумеющееся. А если бы весь код был закрыт по умолчанию?
Попробуем представить, как в такой реальности выглядел бы технологический прогресс, безопасность, стартапы и образование.
Читать далееВсем привет! Я Елена Шустерман, ведущий технический писатель в РТЛабс.
Это вторая часть статьи «Давайте сократим сокращения». Расскажу ещё немного про редактор MS Word и поиске с подстановочными знаками — об использовании фильтра с подстановочными знаками для усложненной задачи.
Читать далееМаркировка уже стала новой нормой для самых разных товарных групп. Ошибка с одним кодом Data Matrix сегодня это не просто «исправим в накладной», а риск штрафа, зависшего УПД и зависшей отгрузки.
Сегодня разберем, как настроить приемку и отгрузку маркированного товара на ТСД с помощью «Склад 15 Минимум».
Читать далееCursor теперь доступен в IntelliJ IDEA, PyCharm, WebStorm и других IDE JetBrains через протокол Agent Client Protocol (ACP).
Разработчики, которые полагаются на IntelliJ IDEA и другие IDE JetBrains за их мощную поддержку Java и нескольких языков, теперь могут использовать любую передовую модель вместе с Cursor для агентно-ориентированной разработки. Подробнее - в новом переводе от команды Spring АйО.
Читать далееМеханизм работы с файловой системой в Podman очень схож с Docker. Но есть несколько нюансов. Так как Podman разрабатывался с упором на безопасность и rootless, порой возникают неочевидные ошибки при монтировании volumes. Сегодня рассмотрим эти нюансы и поглубже заглянем в кроличью нору.
Читать далееAI-агент каждую сессию начинает с нуля — не помнит, что вчера разбирали архитектуру, какие баги нашли и почему выбрали именно это решение. Знакомо?
Я сделал open-source MCP-сервер на Go, который даёт агентам persistent memory с semantic search. Один memory-layer для Cursor, Claude Code и Codex — чтобы контекст не терялся между инструментами.
В статье — не обзор, а инженерный разбор: схема БД, embedding pipeline с fallback между провайдерами (и почему я в итоге от этого отказался), in-memory cosine similarity вместо vector DB, RAG-индексирование с инкрементальным обновлением, и реальные промпты для агентов.
Отдельно разобрал грабли: почему fallback между разными embedding-моделями — это не отказоустойчивость, а источник тихих багов, и как я это починил.
Привет, Хабр! Меня зовут Антон Осетров, я разрабатываю СнК в компании YADRO. Раньше я проектировал отказоустойчивые бортовые вычислители, а также испытывал в лаборатории микросхемы. В этой статье я расскажу, что такое DFT, зачем это нужно, а также сравню популярные архитектуры, с помощью которых DFT реализуют на FPGA.
Читать далееOpen Academy — это Telegram mini app для обучения финансам (в будущем и другим направлениям) прямо внутри Telegram и в удобном формате слайдов. В этой статье я разбираю доступность интерфейса Open Academy с точки зрения незрячего пользователя и показываю, какие элементы можно улучшить.
Читать далееВ этой статье я разберу внутреннюю кухню рынка SERM (управления репутацией). Мы поговорим о том, как устроена экономика микрозадач, почему одни отзывы «живут» годами, а другие улетают в бан через 5 минут, и как на этом построить системный доход.
Читать далееGoogle опубликовал в открытом доступе Google Workspace CLI — инструмент для системных администраторов, DevOps‑инженеров и разработчиков, которые управляют корпоративной инфраструктурой. Это интерфейс командной строки для администрирования и автоматизации работы с сервисами Google Workspace. Проект размещён на GitHub.
Фактически, это удобная прослойка между API Google Workspace и вашей консолью. Вместо того, чтобы напрямую работать с REST‑запросами, настраивать OAuth и обрабатывать авторизацию, разработчики получают готовый CLI‑инструмент. В нём уже есть описанные скиллы (команды) для типовых операций — управления пользователями, группами, файлами Drive, Gmail и другими сервисами. Это особенно удобно при создании AI‑агентов и автоматизированных сценариев. LLM может вызывать конкретные команды CLI, не дергая API напрямую и не усложняя логику авторизации.
Читать далееДобрый день. В этой статье поделюсь следующим опытом: как мне удалось сэкономить очень много денег для известного крупного ритейла.
Ко мне обратилась одна из крупнейших торговых сетей России с проблемой следующего характера. На её распределительных центрах (РЦ) Заказчику поступал товар от производителя — огурец сорт «Мева». Заказчик, разгружая у себя товар в количестве 32 поддонов весом по 600 кг и вывозя его электрокаром из кузова авто, получал падающие и рассыпающиеся поддоны вместе с огурцами. При этом опалетка каждого поддона рвалась. В результате возникали серьёзные потери на каждом РЦ именно с этим поставщиком-производителем.
Заказчик тратил время на сбор продукции и возврат обратно поставщику, а также терял в прибыли на каждом РЦ крупные суммы.
Что было решено? Я посетил один РЦ ритейла во время приёмки данного товара от производителя. Также было решено посетить день формирования партии и отгрузки на складе производителя. На выяснение истинной причины было затрачено 7 дней.
Что сделано с моей стороны:
-Заказчик предоставил копию договора поставки с производителем. -Изучил условия в договоре.
-Заказчик предоставил фото- и видеоматериалы происходящего на своих РЦ (как падает паллет).
-Договорился о днях присутствия на РЦ.
-Договорился с производителем о дне присутствия на складе производителя.
-Изучение, анализ, фиксация процессов на РЦ и складе производителя с помощью фото и видео.
Моё присутствие, наблюдение и анализ на РЦ Заказчика подтвердили, что паллет с огурцами разваливается при малейшей тряске или повороте электрокара. Особенно когда электрокар аккуратно съезжал с кузова, а именно в моменте, где всегда происходит небольшой скачок. Это стандартный технически заложенный скачок — без него никуда, так устроен процесс отгрузки и разгрузки. Мы попробовали аккуратно вывезти паллет и поставить его на весы, но при простом развороте электрокара весь поддон разваливался. Предположительно, проблема была не в РЦ и не в сотрудниках на электрокарах.
Многие статические анализаторы позволяют подавлять отдельные предупреждения прямо в коде с помощью специальных комментариев. Со временем таких меток в проектах накапливается всё больше. Часть из них теряет актуальность, и потом они просто висят в коде как магниты на холодильнике.
В этой статье мы решили оценить масштаб проблемы. Мы взяли несколько проектов и проверили их с помощью нового функционала PVS-Studio, который умеет находить устаревшие маркеры подавления. Посмотрим, что из этого получилось.
Всем привет! Меня зовут Александр, я начальник производства металлоконструкций. Я не IT-специалист в белой рубашке, который видел станки только на картинках. Я практик. Я знаю, что такое срыв сроков, ночные смены и бесконечные поиски виноватых, когда цех встает из-за того, что «кто-то забыл заказать металл».
Сегодня я расскажу, как иллюзия контроля через бесплатные сервисы обходилась нашей компании в сотни тысяч рублей убытков, и как я написал систему управления цехом, которая спасла мои нервы и деньги собственников.
Читать далее