Обновить
1024K+

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

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

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

Долго запускается qt creator, долго переходит между вкладками (проект, отладка, редактор), не работает масштабирование

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

В этой статье рассматривается одна из причин такого поведения IDE Qt Creator и приводится решение этой проблемы. Актуальность:

1. В интернете нет описания и решения данной проблемы (я искал).

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

3. ИИ не предлагает верного решения.

4. У ide Qt Creator нет лога ошибки данной проблемы (QT_DEBUG_PLUGINS=1 и gdb бесполезны).

Читать далее

Создаём DSL на C#: LSP и поддержка в Visual Studio

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

В шестой части цикла про создание DSL на C# добавляем Akbura полноценную поддержку IDE.

Разберём Language Server Protocol, синхронизацию документов, immutable snapshots, MSBuild и semantic tokens. Затем посмотрим, почему для Visual Studio я выбрал нативную интеграцию через MEF и Visual Studio SDK, какие проекты помогли разобраться в Editor API и какие полезные возможности Roslyn неожиданно оказались internal.

В конце немного про публикацию расширений в Visual Studio Marketplace и приключения с Azure.

Читать далее

Пишем свой React: Fiber, хуки и рендеринг под капотом

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

Каждый день мы пишем JSX, используем хуки и стараемся не нарушать их строгие правила. Но как вся эта «магия» работает под капотом? Почему условный рендер ломает useState, а индексы массива в key приводят к багам? Зачем React перешел на архитектуру Fiber и как алгоритм обходит дерево элементов, не блокируя браузер?

Чтобы перестать воспринимать React как черный ящик, лучший способ — написать его с нуля.

В этой статье мы шаг за шагом воссоздадим собственный движок React. Мы реализуем функцию createElement, разберем Fiber-архитектуру с асинхронным рендерингом, напишем алгоритм Reconciliation и создадим систему хуков, разобравшись в логике их работы.

Читать далее

Как не подарить полный продукт вузу, заводу без интернета и торренту

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

Для примера будем использовать наш продукт для просмотра топологии и верификации(EDA) и расскажем, как мы построили его лицензирование.

Каждый коммерческий продукт рано или поздно упирается в один вопрос: кому именно вы продаёте право пользоваться программой.

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

Но если продукт одновременно нужен заводам, университетам, небольшим компаниям и стартапам, модель меняется. Это уже не десять клиентов, а сотни или тысячи машин: учебные лицензии, trial, временные ключи, один ноутбук на нескольких сотрудников.

В этот момент плохо работает модель «один бинарь и проверка лицензии есть или нет».

Читать далее

Шесть миллиардов прогонов ради одной галочки: как устроено ревью научного софта на GitHub

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

Последние месяцы я рецензирую научный софт для JOSS, Journal of Open Source Software. Это настоящий рецензируемый журнал с редколлегией, только статья в нём короткая, около тысячи слов, а главный объект ревью - репозиторий с кодом. Ревью идёт в публичном GitHub-треде под именем рецензента, и весь процесс от заявки до вердикта открыт любому желающему. Я инженер, не учёный: ни PhD, ни публикационного списка у меня нет.

Читать далее

Большая история крохотного BPMN

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

Что полезного может делать бизнес-процесс, в котором всего одна задача, и та пользовательская? Что можно рассказать про BPMN-схему, которая поместится на экране смартфона? Муки выбора, драма, предательство и обстоятельства непреодолимой силы — вот что! Я расскажу, как на самом деле разрабатываются BPMN, исполняемые в движках вроде Camunda и Flowable, и, может быть, вы перестанете считать их просто «очередной графической нотацией»

Читать далее

Должен был платить за объектное хранилище 25 рублей, которые превратились в 42000 рублей

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

Бэкапы с моих серверов уезжают в объектное хранилище, и стоило это около десяти тысяч в месяц. Потом пришло письмо, что средства заканчиваются, а по расходу за трое суток выходило уже сорок с лишним. Провайдер ни при чём: репозиторий раздулся до 291 ГиБ, из которых 190 были чистым дублем, а prune не отрабатывал вообще никогда — репозиторий был повреждён, плюс шесть виртуалок конкурировали за один эксклюзивный лок. Разбираю по шагам, что нашёл и как перестроил схему.

Читать далее

Ox Alpha (GLM-5.3-Flash). Что это было?.

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

20 августа на OpenRouter появилась строчка stealth/ox-alpha. Без карточки модели и даже намёка, кто её выложил. Провайдер значился как «Anonymous». Цена — ноль. Контекст — мильон. Площадка предупреждала: мы не владелец этой модели, а просто маршрутизируем запросы.

Через шесть дней у анона было имя, десятки триллионов обработанных токенов и полмиллиона разработчиков, которые за это время успели залить в него рабочий код. Спойлер, который уже не спойлер: это оказалась GLM-5.3-Flash от китайской Z.ai.

Но путь от «непонятно что» до «фронтир‑модели» получился драматичным и заслуживает разбора. Ну а поскольку я лично пялился в этот тред почти неделю, обновляя ленту как одержимый — расскажу вам что там произошло, по порядку.

Читать далее

Как я год загружал фото в Битрикс24 и собрал все грабли файлового API

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

Работа с файлами в REST API Битрикс24 — та задача, где документация заканчивается ровно там, где начинаются проблемы. Официальные примеры показывают, как загрузить один файл в одно поле. А дальше выясняется, что у crm.item.update и crm.deal.update разные несовместимые форматы, что вложенный base64 через http_build_query уходит в никуда, а сервер при этом честно отвечает «result».

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

Собрал всё в один разбор — шесть подходов с кодом и восемь граблей:

два формата файлового значения, которые нельзя смешивать, и почему при смешении затираются уже прикреплённые файлы;

тихий провал: HTTP 200, в ответе result, поле не обновилось;

useOriginalUfNames=Y, без которого UF_CRM_* молча игнорируются;

downloadUrl приходит с пустым auth= и без подстановки токена не скачивается, а при протухшем токене вместо файла отдаётся HTML-страница с кодом 200;

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

В конце — таблица «что брать под какую задачу» и чеклист граблей. Двадцать блоков кода, всё из боевых проектов.

Читать далее

Компилятор удалил вашу проверку на переполнение. И он прав

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

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

Разобраться в UB

Как мы победили OOMKill и сэкономили треть ресурсов: настройка JVM в Kubernetes

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

Привет! Я Костя Никитин, руководитель направления в одном из подразделений Т-Банка. Занимаюсь проектированием высоконагруженных систем — мы импортозамещаем автоматизированную банковскую систему. Если упростить, это автоматизация бухгалтерского учета: все банковские операции приходят к нам, нужно их сложить и посчитать. В Java-мире я уже больше двенадцати лет, начинал когда-то с 1.6.

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

Спойлер: в финале мы сократили потребление памяти на 18%, CPU — на 31%, а приложения при этом стали работать быстрее. Погнали.

Читать далее

Мы списали uv со счетов. А потом он ускорил наш CI на 80%

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


Мы списали uv со счетов. А потом он ускорил наш CI на 80%

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

Мы так и сделали. Взяли один микросервис: Python 3.14, 37 прямых зависимостей, 153 пакета в lock-файле, приватные пакеты и внутренний Nexus. Ожидание было простым: если uv действительно быстрее Poetry, миграция окупится сама.

Локально получилось наоборот. Резолвинг — да, быстрее. Установка по готовому lock-файлу — нет, иногда даже медленнее. Эксперимент закрыли и остались на Poetry.

Через несколько недель пришлось вернуться. Не из любопытства, а из-за алерта Trivy и сюрпризов Poetry 2 с корпоративными индексами. И вот тогда uv показал себя совсем в другом месте — в CI.

В статье разберем:

- почему локальный бенчмарк uv vs Poetry нас обманул;
- как Poetry 2 сломал привычную разработку без VPN;
- зачем мы писали парсер poetry.lock requirements.txt и почему это оказалось костылём;
- как точечная замена Poetry на uv sync в пайплайне сократила время с 5:10 до 2:50;
- почему в итоге uv стал единым стандартом и локально, и в CI.

Коротко: если инструмент не выиграл с первого прогона — это ещё не значит, что он бесполезен. Часто вы просто мерили не то узкое место.

Читать далее

Sentry пора на покой… Metric готов принять пост

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

Self-hosted Sentry — это 65 контейнеров, 16-32 ГБ RAM и выделенный инженер на поддержку. Всё ради того, чтобы ловить стектрейсы. Разбираемся, почему индустрия приняла это как норму, сравниваем альтернативы (GlitchTip, BugSink, Hawk) и знакомимся с Metric — Sentry-совместимым мониторингом на, которому хватает 1 ГБ RAM и двух контейнеров. Миграция — смена одной строки DSN.

Читать далее

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

Напарник, Confaster или Claude Code: как мы в SimbirSoft подбираем AI-агента для ускорения 1С-разработки

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

Кто может назвать самый известный во всем мире «помощник» при написании не только программного кода, а вообще любого, даже небольшого текста? Наш тайный чемпион – буфер обмена!

Кто-то, наверняка, сейчас усмехнется, но задумайтесь на пару секунд: сколько раз вы не переписывали текст тупо слово за словом, а просто копировали и вставляли его в нужное вам место? Ведь мало кому захочется так тратить свое время, когда можно просто скопипастить. Все к этому привыкли настолько, что никто не сможет уверенно сказать сколько раз за день он нажимает [Ctrl]+[C] и [Ctrl]+[V]. В каких-то случаях, может быть, удобнее перебирать пальцами [Ctrl]+[Insert] и [Shift]+[Insert], или мышью тыкать в картинки на панели инструментов, – все это уже кому как удобно поступать в каждый момент времени.

Все-таки буфер обмена можно назвать главным помощником при написании текстов, и в том числе в 1С-разработке. И тем более, что в 1С можно так копировать не только текст процедур, но реквизиты и целые объекты в структуре конфигурации.

Привет, Хабр. Я 1С-разработчик SimbirSoft Михаил, в этой статье поделюсь своим опытом подбора инструментов, которые помогают ускорить разработку в 1С.

Читать далее

Эра инженерной зрелости: как выглядит стек JS-разработки в 2026 году глазами сообщества

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

Хайп-цикл фронтенда, кажется, наконец-то выдохся. Мы вышли из фазы бесконечного переизобретения колеса, где каждый месяц появлялся «убийца React», и вошли в эпоху убийцы Fable инженерной зрелости. Сегодня опытного инженера сложно впечатлить очередным фреймворком: ценность сместилась в сторону предсказуемости, скорости поставки (delivery) и снижения когнитивной нагрузки.

Привет, меня зовут Павел Востриков, и я — архитектор веб-направления в «Лаборатории Касперского». В этой статье хочу разобрать JS-экосистему как набор инженерных компромиссов.

На HolyJS Spring 2026 мы предложили 120+ инженерам оценить свой реальный стек. Получившийся радар мог быть просто списком библиотек, но в итоге вышел срезом того, как выглядит рациональный подход к коду в 2026 году. Мы видим, как разработчики массово идут в сторону предсказуемой скорости масштабирования решений и инженерной гигиены.

Читать далее

Коннектор к 1С без доработки конфигурации: как мы построили его на OData

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

Привет, Хабр! Меня зовут Виктор Овчинников, я руковожу направлением интеграции и развитием платформы Digital Q.Integration в «Диасофт».

Недавно мы с коллегой Андреем Даниленко, ведущим разработчиком, провели вебинар, на котором рассказали про коннектор к 1С, и в комментариях попросили выложить более подробный технический разбор, что там происходит «под капотом» с точки зрения OData, и как выглядит этот сценарий на живых примерах. Здесь я делаю детальный текстовый анализ. Приглашаю всех присоединиться и при желании посмотреть запись вебинара: https://rutube.ru/video/9344562315beaaf94430d7c4de16ed74/?r=wd&p=KqHZJOTtxfoFzqSMgPuwYg

Читать далее

«Войти через Google»: что сайт получает на самом деле и почему это иногда хуже обычной регистрации

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

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

Читать далее

31 августа лимиты Claude Code упадут на треть: что заканчивается и что с этим делать

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

TL;DR

31 августа 2026 в 23:59 по тихоокеанскому времени заканчивается промо, которое с 13 мая держало недельные лимиты Claude Code на 50 % выше стандартных. Продлевали его трижды — 13 июля, 19 июля, 19 августа. После отмены недельная ёмкость падает примерно на треть: делить на полтора — это возврат к 67 % от привычного. Одновременно работает второй множитель, о котором говорят реже: модели Claude 4.7 и новее считают тот же самый текст примерно на 30 % дороже в токенах, а файл CLAUDE⁠.md — в 1,445 раза. Сложите одно с другим, и получите ощущение, что лимит закончился «в два раза быстрее, чем раньше», хотя формально урезали только треть.

Ниже — что именно заканчивается, с датами и ссылками на документацию Anthropic. И вторая половина, ради которой всё писалось: что с этим делать. Штатный режим «дорогая модель планирует, дешёвая исполняет» внутри самого Claude Code. Механика banked reset у Codex — она существует, но работает не так, как о ней рассказывают. GLM-5.3-Flash, она же нашумевшая Ox Alpha, — с моими собственными замерами, которые расходятся с анонсом. И Fugu от Sakana, которую почти все описывают неправильно.

Что именно заканчивается

Промо на +50 % к недельным лимитам Claude Code действует с 13 мая 2026 и заканчивается 31 августа в 23:59 PT. Anthropic продлевала его трижды, каждый раз незадолго до истечения, так что четвёртое продление исключать нельзя — но планировать на него не стоит. Арифметика возврата простая и неприятная: если сейчас ёмкость составляет 150 % от базовой, то после отмены остаётся 100 %, то есть две трети от того, к чему вы привыкли за три с половиной месяца. Это не «немного ужмут» — это треть недельного бюджета, которую придётся либо экономить, либо чем-то замещать.

Читать далее

ЕГЭ не готовит к вузу. Он готовит к ЕГЭ

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

Этим летом выпускник набрал 310 баллов и не прошёл на бюджет. История разлетелась по СМИ, виноватыми назначили олимпиадников. Полез в цифры: в МФТИ они действительно заняли 53% мест, а на факультете ИИ в МГУ — 15 из 20. Но по стране доля БВИ всего 2,6%. Разбираю, что происходит на самом деле, чем отличаются категории льготного поступления, и главное — что говорят данные ВШЭ о том, кто из поступивших потом лучше учится.

Читать далее

Ленивый LINQ: разбираем yield и ленивые вычисления по кирпичикам. Часть 2

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

В первой части мы успешно вскрыли чёрный ящик LINQ: написали Where вручную, разобрались, как компилятор превращает yield return в конечные автоматы, и посмотрели на методы с частичной буферизацией. Но LINQ был бы не собой, если бы на этом всё закончилось.

Во второй части переходим к «тяжёлой артиллерии» — OrderByGroupBy и Join. Эти методы вынуждены нарушить главный завет ленивых вычислений: они материализуют данные в памяти, прежде чем отдать хоть один элемент. Но как именно?

После этой статьи LINQ перестанет быть чёрным ящиком: вы будете точно понимать, сколько памяти съест каждая цепочка методов и в каком порядке следует вызывать эту цепочку.

Читать далее