Обновить
1024K+

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

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

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

Структуры данных на практике. Глава 13: Структуры данных без блокировок

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

«Блокировки — это goto конкурентного программирования», — Морис Херлихи

Проблема 60%

Наша система логгинга тратила 60% своего времени на ожидание снятия блокировок. Не на выполнение полезной работы, только на одно ожидание.

Восемь ядер, пытавшихся записывать сообщения логов, имели общий кольцевой буфер. Реализация была простой: буфер защищался мьютексом. При высокой нагрузке, когда все ядра записывали логи одновременно, профилировщик демонстрировал ужасный паттерн: 60% тактов CPU тратилось на операции с мьютексом.

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

«Можно ли улучшить ситуацию, отказавшись от блокировок?», — спросил меня мой менеджер во время ревью производительности.

Этот вопрос привёл к полной смене архитектуры...

Читать далее

Новости

Python SDK для Битрикс24: основные возможности и история создания с использованием Битрикс24 MCP-сервера

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

Создание собственных приложений и интеграций для Битрикс24 остаётся востребованной задачей. Однако разработчики сталкиваются с рядом сложностей, которые замедляют разработку и повышают порог входа. Ключевая из них — работа с обширным REST API. Для разработчиков на PHP и JavaScript существуют официальные SDK. Тем, кто использует другие языки, до недавнего времени везло меньше. Им приходилось постоянно обращаться к документации, чтобы уточнить параметры, формат запросов и допустимые значения.

Мы в своей практике используем Python, и эта проблема напрямую касалась нас. В какой-то момент мы решили закрыть её системно — и разработали собственный SDK для работы с Битрикс24, который стал официальной библиотекой

В этой статье мы расскажем, какие задачи решает эта библиотека и как мы создавали её с использованием ИИ и MCP-сервера Битрикс24 для разработчиков.

Читать далее

Cursor — всё? Почему отдельный ИИ-редактор перестаёт быть нужен

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

К весне 2026 года Claude Code уже вышел на run‑rate выручки свыше $2,5 млрд, а Codex используют более 4 млн разработчиков в неделю. Ещё год назад такие цифры казались бы фантастикой для инструментов вокруг кода. Теперь это новая реальность: владельцы ведущих моделей больше не ограничиваются API и исследованиями — они сами заходят в терминал, IDE и корпоративный контур разработки.

На этом фоне особенно интересно, что происходит с Cursor. Ещё в 2023–2024 годах он выглядел почти идеальным ответом на вопрос, как должна выглядеть современная разработка с ИИ. Не чат сбоку, не набор автодополнений поверх редактора, а полноценная среда, которая понимает кодовую базу, держит контекст и помогает программировать эффективнее. Но к весне 2026 года вопрос звучит уже иначе. Не хорош ли Cursor, а остался ли вообще смысл в отдельном платном ИИ‑редакторе, если создатели ведущих моделей пришли в этот слой напрямую.

Именно поэтому главный вопрос для Cursor сегодня не в том, «умрёт ли компания». С компанией как раз всё неплохо: по данным Bloomberg, годовой темп выручки Cursor превысил $2 млрд. Вопрос в другом: не исчезает ли сама логика, при которой отдельный ИИ‑редактор является обязательной прослойкой между разработчиком и ведущими моделями.

Читать далее

Быстро, дешево, качественно. Теперь одновременно, но есть нюанс

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

Меня зовут Александр Сахаров, я директор по партнерствам в компании Диасофт. И тезис, с которого начну, довольно дерзкий: старый айтишный треугольник «быстро, дешево, качественно, выберите два» в 2026 году можно закрывать. Правда, с одним условием, о котором почему-то  практически не говорят.

На днях мы собрались с коллегами обсудить мифы вокруг искусственного интеллекта. Поговорили про AGI и массовые увольнения из-за внедрения ИИ, но с определенной долей скепсиса. И вот почему. Дело в том, что по свежим данным 56 процентов CIO в мире за последний год не получили от ИИ ни роста выручки, ни снижения затрат. Удивлены?

Читать далее

Три мифа, на которых горит dev-бизнес: почему армия джунов и магия ИИ не спасут ваш проект

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

Привет, Хабр! 

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

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

Читать далее

SDD на масштабе FullStack-приложения: 17 спринтов, две конституции, три чата

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

В первой статье я писал про SDD на примере одного вечера. После чего прошёл 17 спринтов SDD на FullStack-приложении: B2C-трекер привычек и целей, два репозитория, 251 тест на бэке и 77 на фронте, релиз в продакшен. Здесь — что не дало мне потерять контроль на этом масштабе.

Читать далее

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

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

Привет, Хабр. Я b0w9r.

Полтора года назад мои знания в разработке находились на отметке 0.00. Кто-то из вас, возможно, помнит мою историю: я начинал учить HTML и CSS, выписывая теги ручкой в тетрадь, потому что у меня не было не ноутбука не компьютера.

Я всё ещё иду по следам программирования, но недавно я сделал важный шаг — всего за 1 месяц я собрал и выкатил свой первый продукт: FocusMind (локальный рабочий хаб с Pomodoro, задачами и заметками).

Оглядываясь на эти полтора года и этот безумный месяц разработки, я сформулировал для себя мысль, которая идеально описывает путь любого начинающего разработчика:

Читать далее

Возвращение блудного программиста (ч.2)

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

Предыстория тут.

Возвращение началось с осознания, что мир IT уже не тот, каким я его помню. Хотя бы потому что работодатель понял, что программист не равно администратор сети и/или СУБД, тем более не просто "компьютерщик" на все руки.

Читать далее

От написания промптов к проектированию контекста. Или один очень обширный материал по Context Engineering

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

Если вы часто упираетесь в лимиты Claude Code / Codex и не понимаете, куда улетают токены — этот лонгрид для вас

Да и вообще всем, кто хочет разбираться в современных AI инструментах, будет полезно

Разбираемся

1. Как устроено контекстное окно изнутри: 7 слоёв (от весов модели до MCP и skills)
2. Что такое attention и при чем тут O(n²)
3. Как работает agent loop на примере 4 вызовов модели
4. Почему prompt caching экономит до 10× в лимитах при правильной работе с ним

Сууупер длинная статья

Че там Че там 👀

Почему диффузия рисует швы на 40-мегапиксельных фото и как сделать тайлы с памятью

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

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

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

В статье разбираю три идеи о том, как у фото-модели может появиться память между соседями. Восемь архитектурных классов памяти из видео-диффузии (BCLA из SANA-Video, FramePack, SVD reshape, AnimateDiff и другие): какие переносятся на тайлы, какие нет и почему.

Читать далее

Биологический квайн: программа из 75 букв ДНК, которая копирует сама себя

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

Если задать гуглу вопрос «какая система счисления у ДНК», он честно скажет — четверичная. Четыре буквы (A, C, G, T) кодируют всё, что есть в живом. Каждые три подряд — кодон, итого 64 комбинации, чего хватает с запасом на любой опкод компактной стек-машины.

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

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

В этой статье я расскажу, как устроена эта штука: соберём четверичный байткод из ДНК, напишем стек-машину, которая по нему ходит, а в конце — соберём 75-нуклеотидный геном, который копирует сам себя нуклеотид за нуклеотидом. Дальше из этого вырастет 3D-симуляция тканей, эволюция и драматичная история про вымирание колонии — но это будут следующие статьи серии.

Читать далее

Динамический ресайзинг изображений (Image Previewer)

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

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

Читать далее

Знакомство с одним прогоном Mythos применительно к Firefox: а разговоров-то было?

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

Когда компания Anthropic анонсировала свою большую языковую модель Mythos , на первый взгляд этот инструмент произвёл неиллюзорное впечатление, а кого-то и всерьёз озаботил. Но, вчитавшись в материалы о Mythos, замечаешь, что общественный отклик не столь однозначен, как броские заголовки. То и дело приводится цифра «до 20 000 долларов», но она не означает, что Mythos походя нашла один катастрофический баг, поиск которого был оценён в такую сумму. В собственном отчёте компании Anthropic описано, что в эту сумму входит обширный поиск, сложившийся из тысячи взаимодополняющих прогонов, а найдено было несколько десятков трофеев. Бесспорно, это тоже замечательное достижение, но правда отличается от той патетической версии событий, которую подхватила молва. Далее компания Mozilla выпустила статью, в которой рассказала, что при помощи Mythos удалось выявить в браузере Firefox 150 множество проблем, найденных средствами ИИ, причём, они клонят всё к тому же: искусственный интеллект всерьёз заявил о себе в поиске уязвимостей. В оригинале этот пост называется «The zero-days are numbered» (Нулевые дни сочтены).

Читать далее

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

Эмулятор Qemu | Установка и настройка

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

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

Читать далее

Итерация 0 закрыта: от спеки до «Привет» в боте

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

Короткий апдейт. Первая статья была про спеку и архитектуру до первой строчки кода — вот что произошло дальше.

В первой статье я пообещал: следующий пост — когда появится работающий код, вебхук ответит «Привет», событие запишется в базу. Обещание выполнено.

Читать далее

Gemini перестал работать с VPN. Что делать?

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

Gemini перестал работать через vpn. Оказалось, что Google начал воспринимать некоторые ip-адреса за Российские. Я решил разобраться с этой проблемой и поделился, что сделал, чтобы диагностировать проблему и решить её

Читать далее

Деконструкция GO: CPU, RAM и что там происходит. Системные вызовы. Часть 1.5

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

Итак, финал части 1! По крайней мере основного разбора без дополнений. Собственно, сегодня мы разберем то, чем в основном с точки зрения ядра ОС и CPU являются все вот эти ваши бэкенды – системные вызовы и всё, что вокруг них.

На самом деле механизм немного замудренный и “в лоб” сразу все эти системные вызовы мы разбирать не будем, потому что вокруг них существует ещё несколько концепций.

Итак, начнем!

User mode, Kernel mode

Процессор исполняет код в разных уровнях привилегий.

Это механизм защиты, который не позволяет пользовательским программам напрямую управлять системой. Зачем? Для безопасности. Чтобы чей-нибудь опасный ассемблерный вайбкод случайно всё не поломал!

Да и вообще, если бы любая программа могла выполнять любые инструкции CPU, она могла бы:

• Читать память других процессов

• Управлять устройствами

• Изменять таблицы страниц

• Выключать систему

Чтобы этого не происходило, CPU разделяет код по уровням доступа.

Хотя в архитектуре x86 существует 4 уровня привилегий:

Ring 0 – kernel mode

Ring 1 – драйверы

Ring 2 – системные службы и файлы

Ring 3 – user mode

По факту, Ring 1 и Ring 2 – это легаси, которое американские деды проектировали с научной красотой, но без реальной производственной необходимости. В реальной жизни используются только 2 уровня – Ring 0 и Ring 3 для бОльшей совместимости софта с другими ОС, упрощения поддержки, да и вообще переключение уровней доступа дорогое(100-150 тактов CPU), соответственно, чем больше колец, тем хуже производительность.

Получается, что

В user mode выполняется обычный код программ.

Читать далее

StaticECS — Bitmap Entity Component System

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

За десятилетия существования ECS сложились два фундаментальных способа хранить компоненты: архетипы (Unity DOTS, Flecs, Bevy) и sparse sets (EnTT, LeoECS). Каждый из них несёт структурные ограничения, которые не устраняются оптимизацией реализации — они вытекают из самой модели данных.

StaticEcs — третья модель. Она основана на инвертированном иерархическом битовом индексе: не сущности хранят маски своих компонентов, а компоненты хранят битовые карты сущностей. Фильтрация запроса — это побитовое AND, обрабатывающее 64 сущности за одну инструкцию CPU. Добавление или удаление компонента меняет один бит и не перемещает никаких данных.

В статье разбираю, как устроена эта архитектура, чем она отличается от архетипов и sparse sets, и что даёт на практике.

Читать далее

Квантовый сапёр и квантовый тетрис: изучение квантовых феноменов через компьютерные игры

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

Игра — один из наиболее универсальных и интересных способов знакомства со сложными концепциями и взаимосвязями. Тема обучающих игр для программистов на Хабре популярна и хорошо разобрана в отдельных статьях (особенно в корпоративных блогах). Я бы отметил работы уважаемой Дарьи @t3chnowolf в блоге компании «МТС», затрагивающие эту тему, в частности, «5 обучающих игр для разработчиков» (почти 29 500 просмотров) и «Обучающие игры для разработчиков: кодим, играя» (более 24 000 просмотров). Какое-то время назад я также хотел попробовать свои силы в этой теме, однако нашёл значительно более увлёкший меня боковой сюжет: игры, помогающие осмыслить квантовые феномены и смоделировать работу квантового компьютера. Наиболее узнаваемые из них — пожалуй, «квантовый сапёр» и «квантовый тетрис». Впрочем, давайте обо всём по порядку.

Читать далее

Сладкие оковы вайб-кодинга

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

Некоторое время назад я высказал предположение, что проблемы С++ настолько глубоки, а процесс принятия решений комитетом настолько медленный, что доработки в С++ не в состоянии успеть за скоростью развития отрасти Ахиллесова пята C++ и будущая р̶е̶ эволюция / Хабр.

Конечно, я не считаю, что С++ будет забыт, но с большой долей вероятности ему будет уготована нишевая роль, как сейчас это произошло с языком С, которому С++ и пришел на замену. Причем я предположил, что способ плавной замены С++ на какую то альтернативу должен происходить точно также, как сам С++ пришел на замены старому С, через транспрлайтер (sourse to source translation).

А недавно я в очередной раз решил попробовать использовать LLM при работе с большими проектами и старым легаси кодом и нужно было протестировать новые моделей в каком нибудь крупном проекта (но, чтобы это был не продуктовый код). Поэтому мой собственный проект языка программирования в виде трансплайтера оказался вполне достойным вариантом для оценки возможностей современных нейросетей на крупном проекте, таком как компилятор языка программирования. И эта статья - мои наблюдения и впечатления от использования LLM на большом и сложном проекте.

Читать далее