Обновить
1671.28

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

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

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

sudo исполняется 45. Вашему контейнеру — всё равно

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

На почти каждой Linux-машине в мире живёт один маленький бинарник. Весит несколько мегабайт, несколько десятков тысяч строк кода, поставляется со своим собственным конфигурационным языком, и CVE-шек за ним накопилось столько, что хватит на хорошую таблицу с фильтрами. Большинство из нас запускает его по десятку раз в день, не задумываясь.

Этот бинарник — sudo.

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

Вот о чём эта статья: что это за работа, как она обросла такой сложностью, и как маленькая программа на C справляется с ней лучше.

Читать далее

Если вы умеете делать хороший code review, вы умеете работать с AI-агентами

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

AI‑инструменты часто делают одно и то же: они выбирают слишком тяжёлое решение там, где достаточно простого. Ценность человека — в инженерном суждении: распознать плохую архитектуру, остановить усложнение, выбрать более простой путь, держать систему в здравом состоянии.

Читать далее

Gemini 3.1 Pro vs Claude Opus 4.6 – сравнение февральских новинок

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

Две недели. Именно столько понадобилось, чтобы гонка ИИ-гигантов превратилась в полноценную войну миров.

5 февраля Anthropic выпускает Claude Opus 4.6 – короля экспертных задач, который мгновенно захватывает вершины рейтингов качества и пользовательских симпатий. Ажиотаж, восторг, заголовки.

Но 19 февраля Google берёт паузу... и выстреливает Gemini 3.1 Pro. Результат? +46 процентных пунктов в тесте ARC-AGI-2 (77,1% против 31,1% у предшественника), лидерство в 12 из 18 бенчмарков и ценник, от которого у конкурентов округляются глаза.

Gemini 3.1 Pro вдвое обходит предшественника в тестах на рассуждение, стоит в 6,5 раза дешевле флагмана конкурента и штампует 3D-симуляции птичьих стай по текстовому описанию. Claude Opus 4.6, который не гонится за скоростью, а размышляет вслух, взвешивает моральные дилеммы и остаётся любимцем людей в слепых тестах.

Как не запутаться в этом треугольнике и выбрать модель под свои задачи? И почему эксперты в финансах и юриспруденции отдают предпочтение Sonnet 4.6, оставляя “тяжеловесов” далеко позади?

Разобрали 18 бенчмарков, чтобы вы поняли, за какой моделью – ваше завтра. В этом материале мы свели все цифры, графики и пользовательские ощущения, чтобы у вас была полная картина февральской перезагрузки. Узнайте, какая модель сделает вашу работу лучше, быстрее и дешевле и кто победит в этой дуэли – цифровой гений-отличник или философ с душой.

Читать далее

Больше моделей, больше возможностей: зачем мы вводим подписки в Kodacode

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

У нас появились долгожданные подписки! Мы добавили модели, которых раньше не было. И теперь полный список выглядит следующим образом: GLM-4.7, GLM-5, MiniMax-M2.5, DeepSeek-v3.2, Kimi-K2.5, Gemini 3 Flash Preview и GPT 5.3 Codex. Sonnet и Gemini Pro сейчас тестируем — подключим после проверки стабильности в IDE и CLI.

Читать далее

Минимальный продакшн-шаблон для Next.js приложения

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

Собрал production‑ready Next.js boilerplate для self‑hosted проектов: один репозиторий, один VPS, Docker + nginx + Let’s Encrypt, GitHub Actions, опциональный MongoDB, авторизация и небольшой UI‑кит. Это кейс про инфраструктуру вокруг Next.js без Vercel и прочих managed‑платформ для большего контроля и экономичного старта.

Читать далее

OpenAI отменили собственный бенчмарк, а $600 на Claude Code дали ноль результата

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

Третий выпуск еженедельных IT-новостей от OpenIDE. В этот раз: Google тайно засунул 4 ГБ Gemini Nano в Chrome, разработчик сжёг $600 и отпуск на Claude Code и получил ничего, Трамп выкинул Claude из госзаказа, SWE-Bench оказался пустышкой, а Uber сделал ИИ-копию своего CEO.

Читать далее

Scala Digest. Выпуск 38

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

Привет, Хабр! Мы — Настя, Эвелина и Михаил — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать.

Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать тридцать восьмой

Запускаем Doom на старом офисном телефоне

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

Когда-то давно мне подарили кучу VoIP-телефонов, которые списали на моей старой работе. Среди них были два Snom 360 Business, выпущенные в 2005 году. Изначально я хотел настроить АТС на основе Asterisk для всех доставшихся мне телефонов, но в процессе обновления прошивки на одном из аппаратов Snom 360 мне пришла в голову идея получше. У телефона есть экран и клавиатура... получится ли на нём запустить Doom?

Читать далее

Мир снов, сгенерированный компьютером: виртуальная реальность для процессора 286

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

«Что есть "реальность"? И как определить её? Весь набор ощущений: зрительных, осязательных, обонятельных — это сигналы рецепторов, электрические импульсы, воспринятые мозгом.» — Морфеус, фильм «Матрица»

Если процессор — это мозг компьютера, то может ли он быть ещё и частью некой виртуальной реальности? Симулированная память, программно-определяемая периферия, искусственно сгенерированные прерывания...

Моим первым компьютером был 286 с 1 МБ ОЗУ и жёстким диском на 50 МБ (если я правильно помню). Поэтому я решил взять процессор 286 и попробовать симулировать остальную часть компьютера вокруг него. Или хотя бы сделать так, чтобы он мог запускаться и выполнять какой-то простой ассемблерный код.

Два года назад я купил два процессора Harris 80C286-12. Мои воспоминания довольно туманны, но кажется, буква C в их маркировке важна, потому что она означает меньшую чувствительность к точности таймера (12 в конце означает, что процессор предпочитает работать на 12 МГц), и что на нём даже допустимо пошаговое выполнение.

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

Читать далее

60 бесплатных уроков марта: от React и Docker до архитектуры, DWH и ИИ

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

Хотите прокачать React и Kotlin, разобраться, как устроены саги и брокеры сообщений в распределённых системах, подтянуть Docker и Linux, а заодно понять, где в 2026-м заканчивается ажиотаж про хранилище данных (DWH) и начинается работающая практика? В этом дайджесте собрали 60 бесплатных уроков марта по ключевым направлениям: программирование, архитектура, инфраструктура, информационная безопасность, тестирование, машинное обучение и наука о данных, аналитика и управление.

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

Читать далее

Как меня опрокинул автоматический скоринг Сбера

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

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

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

Читать далее

react-ui-kit-forms: новая библиотека для работы на React в стиле Angular

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

Связка React+MobX хорошо себя зарекомендовала при работе с формами, в то время как за реактивность модели данных в Angular обычно отвечает библиотека RxJS. Но что делать, если вы хотите воспользоваться преимуществами Angular в React или Node.js? В этой статье речь пойдет о новой библиотеке от Cloud X, которую мы разработали для того, чтобы проложить “мостик” из мира Angular, где всё богато, но дорого в мир React, где все дешево, но скудно. В этой статье я описываю применение ядра @cloudx/react-ui-kit-forms, которое отвечает за структуру модели данных, реактивность модели данных и контроль состава данных (валидацию), позволяя “скрестить” плюсы React и Angular на одном проекте. 

Читать далее

Третья эпоха разработки ПО с помощью ИИ

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

Третья эпоха разработки ПО с помощью ИИ

На прошлой неделе в инженерном блоге Cursor был опубликовал манифест «The third era of AI software development». В посте описываются три эры AI-разработки в контексте использования самого продукта. Пост содержит интересную внутреннюю статистику Cursor, которая показывает: смена парадигмы — это уже не прогноз, а то, что происходит прямо сейчас.

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

Читать далее

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

ChessTer – если бы терминатор играл в шахматы

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

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

Сам проект растянулся на долгое время и оказался, в целом, не слишком удачным (хотя и был доведён до условно рабочего состояния). Из-за длительных перерывов как минимум один раз мне пришлось переписывать код практически с нуля – я уже не мог понять, как именно он работает и, главное, почему не работает. В итоге проект всё же был доведён до логического завершения и функционирующего прототипа, но по ряду причин я считаю его практически провальным – о них я расскажу в конце статьи.

Читать далее

Изучаем FastAPI за одну статью: от «Hello World» до структурированного API

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

Если вы пишете бэкенд на Python или только собираетесь вкатиться в эту тему, вы точно слышали про FastAPI. Он обещает скорость NodeJS, автодокументацию из коробки и строгую типизацию. Звучит круто, но для новичка любая новая технология выглядит пугающе.

В этом гайде я хочу взять вас за руку и провести по всем базовым концепциям фреймворка. Мы напишем свой первый API-сервис с нуля, разберем частые ошибки новичков с асинхронностью и поймем, как писать чистый код с помощью APIRouter. Спойлер: баз данных и сложных ORM сегодня не будет, сосредоточимся на чистом понимании магии FastAPI.

Читать далее

Нет соединения — не значит нет UX. Как не потерять доверие пользователя вместе с интернетом

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

Большинство разработчиков думают об офлайн-режиме в последнюю очередь - когда приложение уже готово, дизайн согласован, а PM давит на дедлайн. В результате пользователь видит белый экран, зависший спиннер или, что хуже - молча потерянные данные. Эта статья про то, как выстроить честный UX для состояний без сети: от психологии тревоги до кода с экспоненциальным откатом, от визуального языка ошибок до стратегий разрешения конфликтов. Всё это пригодится при разработке любого мобильного или веб-приложения, которое работает в условиях нестабильного соединения - а таких большинство.

Продолжим

Почему IT-отрасль — феномен XXI века?

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

В любой традиционной профессии путь в специальность выглядит одинаково: школа → пту/вуз → работа.

Врачи учатся порой аж 9 лет, прежде чем получить право лечить людей.
Инженеры-строители. Учителя. Юристы. И многие другие профессии, требующие высококвалифицированные навыки от сотрудника, учат кадры не менее 4 лет.

И только в IT всё работает иначе.

Здесь люди приходят отовсюду: из физики и лингвистики, из продаж и маркетинга, из «гаражных» проектов (привет амазон) и самообразования. Здесь можно за полгода стать востребованным специалистом без единого профильного диплома.

Это уникальное явление, перевернувшее мир. И оно заслуживает отдельного разговора.

Читать далее

Почему macro_rules! может не остановиться и что с этим делает Rust

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

Приветствую.

В 1936 году Алан Тьюринг опубликовал статью, которая среди прочего доказала одну неприятную вещь: невозможно написать алгоритм, который для любой программы и любого входа определит, остановится программа или нет. Проблема остановки. Мы натыкаемся на неё гораздо чаще, чем кажется. Иногда прямо в Cargo.toml.

Читать далее

Проблема не в промпте: как Claude Code плывет на длинных задачах и как управлять контекстом

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

На коротких задачах coding-агент выглядит почти как живой разработчик: читает код, гоняет тесты, находит проблему, предлагает diff, но на длинной дистанции магия заканчивается. Стоит агенту или пользователю подмешать еще пару логов, несколько файлов "на всякий случай" или еще один MCP-сервер, и агент начинает забывать договоренности, повторять уже проверенные шаги и терять план.

Обычно это объясняют так: "модель тупит" или "надо лучше промптить", но на практике проблема часто в другом: мы складируем состояние задачи в историю чата и надеемся, что модель удержит его сама. Не удержит.

Контекст у LLM - это не бездонный мешок, а рабочая часть "памяти" модели, ее нужно проектировать: что хранить отдельно, что подмешивать just-in-time, что выбрасывать после шага и что обязательно возвращать после compaction.

В этой статье я разберу context engineering на примере coding agents, а конкретно на Claude Code: почему long context до сих пор деградирует, почему проблема особенно больно бьет по агентам, чем полезны /compact и Plan Mode, и как собрать минимальный контекстный конвейер без магии и лишней философии.

Читать далее

Оптимизация Lineage 2 GeoData драйвера

Уровень сложностиСложный
Время на прочтение39 мин
Охват и читатели5.7K

В позапрошлом году вышла статья https://habr.com/ru/articles/814529/ про синхронизацию позиции персонажа между клиентом и сервером в Lineage 2. После прочтения появилось желание перенести эту логику в свои сырцы от когда-то разрабатываемого сервера и, возможно, запустить его где-то для себя и старых друзей поразвлекаться. Понятное дело, что современного ПК с кучей рам, хорошим процом и nvme дисками при желании было бы за глаза даже для запуска тысяч игроков, но заниматься организацией доступа из дикого интернета на свой ПК желания не было, да и обеспечивать постоянный доступ - дело такое себе. В наличии была самая дешманная впска у хостера F с доменом, но с сильно ограниченными ресурсами: одно ядро и 512Мб рам. Мягко скажем, памяти маловато.

Наспех восстановил сырцы, актуализировал сборку под современные версии java и либ, запустил - потребление хипа примерно 400Мб на старте. Без геодаты. А с геодатой - 1200Мб.

И тут появился спортивный интерес влезть в 512Мб, да еще и с геодатой.

Результатом стал оптимизированный драйвер геодаты, зашаренный на гитхабе https://github.com/mosinnik/l2-geo, репорт о потенциальном баге в JDK и эта статья.

Погружаемся в мир геодаты