Обновить
1670.4

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Почему промышленная робототехника выбирает полную интеграцию ROS2

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели16K

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

Читать далее

Разница между параллельными и распределёнными вычислениями

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.8K

Параллельные и распределённые вычисления часто ставят рядом, но это далеко не одно и то же. В новом переводе от команды Spring АйО разберем, как устроены обе модели, чем отличаются их архитектура, способы обмена данными, масштабируемость и отказоустойчивость. Статья подойдет тем, кто хочет понять, когда достаточно ресурсов одной машины, а когда без сети из нескольких узлов уже не обойтись.

Читать далее

Как Нейроюрист ищет по миллионам юридических документов с помощью векторного поиска YDB

Время на прочтение8 мин
Охват и читатели14K

Привет, Хабр! Меня зовут Александр Зевайкин, и мы с командой делаем YDB (СУБД Яндекса). В конце прошлого года Яндекс представил специализированного ИИ‑помощника — Нейроюриста, для которого обучил языковую модель на основе Alice AI LLM. Сервис работает на базе RAG, под капотом у которого находится YDB c миллионами различных юридических документов.

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

Читать далее

Написал шахматный движок для 6×6 Crazyhouse — стал #1 на chess.com, а потом меня забанили

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели18K

Привет, Хабр. Меня зовут Владимир, я бэкенд-разработчик. Это моя первая статья здесь — о том, как пет-проект для нишевого варианта шахмат прошёл путь от «а что, если...» до первого места в рейтинге на chess.com. Без нейронок. На чистом alpha-beta поиске, написанном на Rust.

Статья будет полезна тем, кто интересуется шахматным программированием, оптимизацией CPU-bound задач или связкой Python + Rust через PyO3.

Читать далее

Next.js, PostgreSQL, OAuth, Т-Банк и ни одного разработчика. Как я построил SaaS MVP с помощью AI-агентов

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели8.8K

Всем привет! Если вы следите за темой вайбкодинга, то наверняка замечали как быстро всё меняется. Ещё год назад я генерил одностраничные HTML-файлы, радовался жизни и был уверен что вайбкодинг - он вот про это. Странички, кнопочки, красивый фронтенд. А потом как-то незаметно оказалось что мне нужна база данных, авторизация, платёжная система и тесты. Это как зайти в IKEA за свечкой и выйти с кухней.

Вайбкодинг за последний год изменился до неузнаваемости. Сейчас это не "сгенерь мне страничку" - это полноценная разработка с бэкендом, PostgreSQL, OAuth авторизацией, эквайрингом от Т-Банка, тестами и автодеплоем. Настоящий небоскрёб. И каждый кирпичик в нём выбран не случайно - самые беспроблемные технологии которые я нашёл за время своих скитаний по разным стекам и агентам. Чтобы строить легко и с удовольствием. Ну или хотя бы без желания выкинуть ноутбук в окно.

Читать далее

База по архитектуре приложений для начинающих разработчиков ПО

Время на прочтение34 мин
Охват и читатели8.5K

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

Читать далее

Будущее разработки: как быть впереди рынка, а не догонять его

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.5K

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

Меня зовут Алексей Мартынов, я разработчик и предприниматель с 25-летним опытом работы в IT, программный директор и ведущий эксперт направления веб-разработки в Яндекс Практикуме. В этом материале я рассуждаю о будущем разработки через 5, 10 и 25 лет, а также даю советы новичкам.

Читать далее

Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели5.5K

Что если защита от копирования вообще не содержит ни одного условного перехода? Ретро-разбор библиотеки 2009 года, где вместо if (key == valid) используется вычисление адреса следующей функции, любая ошибка в данных уводит процессор в никуда.

Классический взломщик ищет в дизассемблере инструкции JZ/JNZ и инвертирует их ("Magic Jump"). Здесь этот приём не работает: нет точки принятия решения, нет и цели для патча. Вместо этого серийный номер диска, CRC32 исполняемого файла и системная дата складываются в единственно верный адрес перехода. Чуть изменил данные - получил Access Violation в случайном месте памяти.

Читать далее

5 фатальных ошибок при работе с Pandas (и как их избежать)

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели5.5K

Pandas — швейцарский нож дата-аналитика. Пара строк, и данные отфильтрованы, сгруппированы и готовы к работе. Но часто бывает так: изящный скрипт, летавший на тестовом датасете, на реальных объемах превращается в тормозящего монстра, который воет кулером и выплевывает MemoryError.

Почему так происходит? Главная беда — наши привычки из чистого Python. Циклы for, apply и построчная обработка идут вразрез с архитектурой Pandas, построенной поверх массивов NumPy.

В этой статье разберем 5 самых частых (и фатальных) ошибок при работе с DataFrame. Посмотрим, как безобидные решения убивают производительность и память, и научимся переписывать код так, чтобы всё работало быстро, элегантно и «по-пандасовски». Спойлер: циклов не будет.

Читать далее

Принципы DOD в C++: Часть 2. AoS, SoA. Мнимая панацея для быстродействия

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели4.7K

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

Читать далее

Краеведы на Pastvu годами спорят откуда сделан снимок – вычислил это математически за секунды

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.5K

Работая над архивными фотографиями Сочи, я заметил, что на Pastvu люди иногда годами обсуждают в комментариях, откуда сделан тот или иной снимок. Мне стало интересно: можно ли это вычислить математически? Оказалось, что да. Если на снимке видны три узнаваемых объекта и известны их координаты, задача решается через алгоритм PnP (Perspective-n-Point). Я собрал браузерный инструмент, который делает это автоматически. Первый тест на реальном снимке Сочи дал совпадение с точностью до улицы.

Читать далее

Рецензия на книгу «Котлин. Краткий курс»

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели6.4K

Оригинал книги «Kotlin Crash Course: Fast-track your programming skills with practical experience» вышел в июне 2024 года от автора с серьезным опытом в крупной разработке. Русское издание «Котлин. Краткий курс» выходит в марте 2026, и в настоящий момент это самое свежее руководство по Kotlin на русском языке. В предисловии читателям обещают «быстрое погружение», но если открыть оглавление, становится понятно, что предстоит осилить около 600 страниц довольно плотного и структурированного материала. В рецензии разберем, что внутри, кому эта книга подойдет и насколько она остается актуальной к марту 2026 года.

Читать далее

Разработчики смотрят не туда: AI меняет саму механику разработки

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели4.9K

У индустрии есть любимая форма самоуспокоения. Каждый раз, когда речь заходит про AI в разработке, люди начинают обсуждать качество кода. Смотрят на демки, ловят модель на галлюцинации, смеются над кривыми PR, вспоминают, что она не понимает бизнес-контекст, и на этом месте выдыхают. Кажется, что профессия снова отбилась. Ну да, игрушка интересная, местами полезная, местами смешная, но до реальной инженерной работы ей еще бесконечно далеко.

Легко поддаться этому успокоению, вспомнив первые версии Claude, Copilot или ChatGPT. Многие говорят, что это просто очередной инструмент, как экскаватор вместо лопаты. Ошибка этой аналогии в том, что Copilot - это действительно экскаватор, которым управляет человек. Но агентные системы, работающие в цикле CI/CD, это не инструмент. Когда у вас появляется система, способная самостоятельно делать десятки итераций проверки и исправления за секунды, без участия человека, единица человеческого труда меняется необратимо.

Мне кажется, в этот момент люди смотрят мимо главного.

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

И проблема здесь глубже, чем очередной скачок в генерации кода.

Читать далее

Ближайшие события

Собеседования в Яндекс и ВК (бэкенд, февраль 2026) — этапы, задачки, впечатления

Уровень сложностиПростой
Время на прочтение29 мин
Охват и читатели40K

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

Краткий вывод такой: описанные в той статье «обновления» присутствуют, но значительных изменений не ощущается. В конце выявился «один нюанс», который портит целесообразность процесса изначально (можно сразу пролистать в конец статьи если любопытно). Так что «обновлениям» впереди ещё немалый путь!

Читать далее

Цифровая капсула времени на чистом Go: почему для вечности не нужны базы данных и фреймворки

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели13K

А что, если современные технологии для большинства вещей избыточны? В проекте «ЭХО» я решил проверить это на практике, создав цифровую капсулу времени для потомков. Цель — позволить людям оставить память о себе (фото и мысли) в максимально простом и «вечном» формате.

Технически это эксперимент по созданию системы на 250 млн анкет без баз данных, фреймворков и лишних слоев — только чистый Go и минималистичный Linux. В этой статье я поделюсь опытом, как заставить обычный ПК работать с такой нагрузкой, используя лишь стандартную библиотеку и файловую систему.

Читать далее

Под капотом Beetroot: как я написал менеджер буфера обмена на Tauri v2 и Rust с установщиком 6 МБ

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели10K

Переезд с macOS на Windows для разработчика часто сопровождается болью от потери привычного инструментария. В моем случае решающим стимулом свитчнуться на ПК стала мощная видеокарта. Сейчас мой верный MacBook всё так же лежит на столе и даже подключен к мониторам, но по факту именно Windows (как бы сильно она мне ни не нравилась) стала основной рабочей системой.

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

Штатный инструмент Windows (Win+V) разочаровал моментально: лимит в 25 элементов, отсутствие поиска и полное обнуление после перезагрузки ОС. Поиск альтернатив тоже не увенчался успехом: Ditto надежен, но выглядит как гость из 2005 года, а мощный CopyQ имеет перегруженный интерфейс суровой системной утилиты. Ни в одном из них не было современных функций вроде OCR «из коробки» или базовой интеграции с LLM для обработки текста на лету.

Решение напрашивалось само собой — написать свой велосипед. Но сделать его легким, быстрым и без Electron. В этой статье расскажу о том, как устроен Beetroot — менеджер буфера обмена с бесконечной историей, нативным OCR и AI-трансформациями.

Как это работает под капотом

Какая нейросеть лидирует в генерации кода сейчас? ChatGPT vs Gemini vs Claude

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели18K

Новые нейросети появляются на свет с пугающей скоростью. И речь не только о крупных гигантах вроде OpenAI – на арену выходят десятки моделей, которые можно запустить локально у себя на компьютере.

На моем счету уже есть статьи, в которых я не раз сталкивал лбами разные ИИ. Но из всех узконаправленных сравнений моя самая любимая сфера – без сомнения, программирование

Игроки первого эшелона – Anthropic, OpenAI и Google – не так давно подкинули нам новые версии своих моделей. Конечно, многие ждали выхода новой DeepSeek, но, к сожалению, чуда не произошло. Поэтому в сегодняшнем материале мы сосредоточимся на доступных нам флагманах.

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

Читать далее

Четырёхдневка, Opus 4.6 против Кнута и Cursor внутри JetBrains IDE

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели14K

Четвертый выпуск еженедельных IT-новостей от OpenIDE. В этот раз: Opus 4.6 решил задачу, над которой Дональд Кнут сидел несколько недель, Cursor официально интегрировался с JetBrains IDE, а домен bot.ai ушёл за $1,2 млн.

Читать далее

Как C#‑строки и Dapper тихо убивают индексы Microsoft SQL Server

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.7K

Недавно я посвятил время проблеме производительности на продакшене. Приложение работало в горячке — загрузка процессора в среднем превышала 50% и периодически подскакивала до 90%. Мы сделали диагностический снапшот и начали работать с топом запросов по процессорному времени.

Нарушитель номер один? Простой запрос Dapper. Незамысловатое условие WHERE по проиндексированному столбцу. Должно было быть молниеносным, но в среднем потребляло тысячи миллисекунд процессора при сотнях тысяч выполнений в день.

Несоответствие типов на пару символов, совсем невидимое в C#‑коде. Я очень долго глазел на запрос, прежде чем понял происходящее.

Читать далее

Создание процедурной карты шестиугольников при помощи коллапса волновой функции

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели20K

Я был одержим процедурными картами с ещё детства, когда кидал кубики на таблицы случайных подземелий из AD&D Dungeon Master's Guide. В этом есть что-то волшебное — ты не проектируешь подземелье, а исследуешь его, помещение за помещением, а кубики решают, попадёшь ли ты в сокровищницу или в тупик с кучей крыс.

Спустя годы я решил создать собственный генератор карт. Он создаёт маленькие средневековые островные миры с дорогами, реками, побережьями, горами, лесами и деревьями. И всё это полностью процедурным образом. Генератор написан на Three.js WebGPU с TSL-шейдерами, примерно 4100 шестиугольников в 19 сетках генерируются за ~20 секунд.

Читать далее