Обновить
975.82

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

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

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

Следующие два года в области разработки программного обеспечения

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

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

Читать далее

Методология триады: как я выстроил работу с двумя AI-агентами

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

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

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

Этим «кем-то» стали нейросетевые агенты. Расскажу про подход, который мы обкатали на нескольких проектах в рамках экспериментов с этими инструментами.

Читать далее

Баги в ядре Linux в среднем прячутся по 2 года. Некоторые скрываются до 20 лет

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

Прямо сейчас в вашем ядре есть баги, которые не найдут ещё многие годы. Я знаю это, потому что проанализировал 125183 бага с отслеживаемой меткой Fixes: за 20-летнюю историю Git ядра Linux.

Прежде чем баг обнаружат, он в среднем живёт в ядре 2,1 года. Но в некоторых подсистемах ситуация гораздо хуже: для драйверов шины CAN этот срок в среднем составляет 4,2 года, для сетевого протокола SCTP — 4,0 года. Самый долгоживущий баг в моём датасете (переполнение буфера в ethtool) прятался в ядре 20,7 года. Баг, который я проанализирую в статье подробно (утечка refcount в netfilter), прожил 19 лет.

Я создал инструмент, перехватывающий 92% исторических багов в тестовом датасете на этапе коммитов. Ниже я расскажу, какую информацию мне это дало.

Читать далее

Убийцы иммутабельной производительности — Zustand/Redux в связке с React

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

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

Читать далее

Больше чем ядро: как пет-проект вырос в мультитенантную платформу для создания AI-агентов

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

Началось с простого: сделать универсальное ядро для Telegram-ботов на Python и YAML-конфигах. Сейчас Coreness — это мультитенантная платформа, где боты и AI-агенты создаются декларативно, работают с RAG, а весь код написан через вайб-кодинг с помощью LLM.

Это рассказ о том, как в одиночку за пару месяцев удалось пройти путь от Clean Architecture (которая не зашла) до гибридного микса архитектур, от SQLite до production-инфраструктуры с PostgreSQL и десятками ботов в бою, и почему AI-ассистенты — это не магия, а инструмент, требующий совершенно новых навыков.

Читать далее

Контролируемость цепочек рассуждений в больших языковых моделях

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

Команда AI for Devs подготовила перевод исследования OpenAI о контролируемости цепочек рассуждений в современных моделях. Авторы разбирают, почему наблюдение за CoT может быть ключевым инструментом безопасности, как масштабирование моделей и обучение с подкреплением влияют на контролируемость и какой «налог» приходится платить за более надёжный мониторинг.

Читать далее

Как написать постановку на разработку, чтобы ни у кого не было вопросов

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

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

Я часто сталкиваюсь с вопросом, как корректно передавать аналитические требования разработчикам. Я участвовала в проектах, где процесс постановки был выстроен качественно. Там я набиралась опыта и впитывала знания. Но были и проекты, где вообще никаких постановок не было — только устные договоренности и полотна текста в Jira. Недавно мне вовсе пришлось выстраивать процесс написания постановок с нуля. В этот момент я переосмыслила все предыдущие шаблоны. Теперь хочу поделиться своим видением с вами.

Читать далее

Лучшие практики разработки с агентами: руководство от команды Cursor

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

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

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

Читать перевод

Обзор новогоднего обновления Телеграм ИИ ботов (они не работают)

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

В обнове 31 декабря кроме прочих были заявлены Темы\Треды для ботов: что бы ИИ ботом можно стало пользоваться как веб версией ГПТ - с удобным переключением между диалогами. Прилагается красивая видеографика как это работает. Однако ни одного примера бота в котором это включили я не нашел, а Perplexity бот из видео вообще не отвечает. По этому разбираемся сами как это всё настроить, какие нюансы (большие), и как оно выглядит в быстрой демке: https://t.me/Samo_GPT_Bot

Эта статья — эмпирический разбор нового функционала и пара советов в духе «да поможет вам б‑г».

Читать далее

Не Git-ом единым: гид по системам контроля версий для особых случаев

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

А есть ли жизнь вне GIT? Что там? Может там летают птеродактили или НЛО? Или там просто пустое поле? Давайте разбираться.

Читать далее

Как сделать свой статический анализатор для Go?

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

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

Читать далее

Микрофичи, которые хотелось бы шире распространить в языках программирования

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

Большая часть работы по теории языков программирования и проектированию языков программирования касается аспектов (1) и (2), так как именно они наиболее важны, но лично я глубоко увлекаюсь фичами типа (3). Поскольку эти фичи такие мелкие, именно они наиболее активно перетекают из языка в язык, ведь добавить их можно совсем «малой кровью». Сам я много времени провёл за изучением нишевых малопонятных языков, и за этим встречал множество крутых фич из третьей категории — таких, с которыми вы, возможно, никогда не сталкивались. Расскажу о некоторых из них!

Читать далее

Почему JS-разработчики выбирают Rust, Go и Zig

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

Команда JavaScript for Devs подготовила перевод статьи о том, как инструменты JavaScript переживают сдвиг в сторону системных языков. Rust, Go и Zig уже не эксперимент, а основа нового поколения бандлеров, линтеров и компиляторов. Выясняем, почему экосистема сознательно уходит от JavaScript в собственных инструментах, какие выгоды это даёт и какие компромиссы приносит.

Читать далее

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

Чему мы научились, с нуля создав движок электронных таблиц

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

С самого начала одной из главных идей, лежащих в основе GRID, была идея о том, что работу с электронными таблицами (spreadsheet) и, в частности, с моделями электронных таблиц, можно сделать легче, если перенести их в веб-среду, снабдив приятно выглядящими комментариями и привлекательными интерактивными возможностями. Это касается как таблиц, с которыми взаимодействует единственный пользователь, так и таблиц, которыми одни пользователи делятся с другими.

Если говорить об интерактивности — то мы заранее знали о том, что нам понадобится наибыстрейший движок электронных таблиц, совместимый с Excel и с Google Sheets (GSheets), способный полноценно работать, пользуясь лишь ресурсами браузера. Так как подобного движка (достаточно функционального) нам найти не удалось, мы, кроме прочего, знали и о том, что нам придётся писать его самостоятельно.

К настоящему моменту мы создали то, что, скорее всего, входит в число 4–5 самых совершенных движков электронных таблиц на планете. И это (вероятно — после Google Sheets) самый продвинутый движок, который полностью работает в браузере.

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

Читать далее

Как подружить C++ и YAML: добавляем чтение конфигов с помощью yaml-cpp

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

В этой статье я расскажу о том, как добавить в С++/CMake проект возможность чтения YAML-конфигов с помощью библиотеки yaml-cpp.

Начнем с краткого обзора интерфейса yaml-cpp, а потом разработаем небольшой проект, состоящий из библиотеки с функционалом чтения конфига и приложения, использующего эту библиотеку для получения настроек из YAML-файла.

Читать далее

Инвестиционные боты (почти) с нуля. Часть 1: теория и первые шаги реализации

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

Всем привет.

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

Читать далее

Как DuckDB обрабатывает 1 ТБ данных менее чем за 30 секунд

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

Команда Python for Devs подготовила перевод статьи о том, как DuckDB ломает привычные представления о масштабах аналитических данных. Автор на реальных бенчмарках показывает, что 1 ТБ данных можно агрегировать за считанные секунды — без Spark, без распределённых кластеров и без сложной инфраструктуры.

Читать далее

Перестань вайбкодить: почему «разработка на расслабоне» убьет твою карьеру

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

Ты пишешь код быстрее, чем когда-либо. IDE угадывает твои мысли, тикеты закрываются. Кажется, что ты хакнул систему и поймал тот самый «вайб». Но есть нюанс: если завтра отключат интернет и помощников, сможешь ли ты написать сложную логику с чистого листа?

Читать далее

Как протестировать собственный контроллер памяти SDRAM на FPGA

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

В этой статье я хотел поделиться опытом тестирования своего контроллера динамической памяти на ПЛИС.

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

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

Читать далее

Как запустить 4 независимые нейросети на одном GPU (16 ГБ) под FastAPI

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

Как поднять мультимодальный AI-сервис (OCR, ASR, LLM, TTS) на одной GPU 16GB без облачных API?

Разбираем пошагово:

Подготовка VPS (Ubuntu + CUDA + драйверы)

FastAPI-архитектура с PyTorch/Transformers

Управление памятью (без OOM-ошибок)

Продакшен: systemd + Nginx + HTTPS + домен

Тестирование в Swagger

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

Для кого: DevOps, Python-разработчики, AI-интеграторы, стартапы.

Исходники в репозитории, демо-видео, лайфхаки по разработке прямо на сервере!

Читать далее

Вклад авторов