Обновить
1024K+

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

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

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

Claudex: как я подружил Claude Code с ChatGPT/Codex OAuth без OpenAI API key

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

Я хотел запускать Claude Code через подписку ChatGPT/Codex. Без OpenAI API key и без потери привычных вещей: инструментов, скриншотов, /compact, длинных сессий и нормальных ошибок.

На бумаге это выглядит как простой локальный прокси. На практике пришлось переводить не только JSON, но и поведение Anthropic API: потоковые события, вызовы инструментов, лимиты контекста, файлы, картинки и типы ошибок.

Так появился мой open source fork Claudex. Репозиторий: github.com/pilc80/claudex. Лицензия - MIT.

Читать далее

Новости

Процессы: чего до сих пор не хватало обычным BPM (Часть 2)

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

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

Читать далее

Книжный салон — дополнительные книги от издательства «БХВ». Предзаказ

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

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

Вчера мы писали, что с 21 по 24 мая работаем для вас на стенде 13 в павильоне Б. Однако, развернув вчера базовый лагерь на территории салона, мы обнаружили, что никак не можем разместить на стенде все книги, которые заказали. Часть книг сейчас находится у нас в офисе.

Под катом предлагаем вам таблицу со списком этих книг (некоторые - в более чем одном экземпляре), цены как на салоне. Высказывайтесь в комментариях, кто готов какие книги купить в субботу или в воскресенье. Все книги будут считаться предзаказанными, приходите на стенд, называйте ник с Хабра (мы будем отслеживать комментарии и заносить ники в таблицу, чтобы какую-то книгу случайно не заказали дважды). Ещё раз отметим, что на стенде ассортимент IT-литературы несколько шире, чем в таблице под катом.

Добро пожаловать под кат и до встречи на книжном салоне!

Читать далее

Оргмодель, процессы и агенты (Часть 1)

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

Привет, Хабр! Я — Стас Макаров, ранее продуктовый аналитик в Haulmont, ныне свободный вайбкодер))

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

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

Практически во всех лоукод-системах оргструктра есть часть базовой функциональности, но в инженерных BPM на базе движков Camunda или Flowable такой фичи по умолчанию нет. Это довольно странно, поскольку оба два этих вендора не просто делают движки, но поставляют полноценные платформы для энтерпрайз-решений, где это оргструктура однозначно востребована — но нет. Хотя у их младших собратьев по цеху, Bizagi и Bonita, оргструктры реализованы весьма неплохо.

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

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

Читать далее

Выбор баз данных для хранения больших объёмов: интервью с К. Осиповым

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

Беседа Алексея Рыбака с Константином Осиповым (Picodata) о выборе баз данных для хранения больших объёмов. Обсудили MySQL, PostgreSQL, миллионы нод MySQL в одной экстремистской организации, Cassandra, ScyllaDB, автошардирование, особенности и стоимость хранения, LSM, TTL, ScyllaDB в Discord, Cassandra в Netflix и Apple, а также нишу Picodata. TL;DR: касательно СУБД для хранения очень большого количества данных Константин выделяет две ключевые размерности. Горизонтальное масштабирование — насколько СУБД умеет самостоятельно масштабироваться: добавлять и удалять узлы без ручного вмешательства, выдерживать кластер в 100+ нод без деградации. Storage — насколько движок хранилища подходит для данной нагрузки. Здесь важны: тип структуры и место на диске.

Читать далее

Тебя уволят, и ничего не сломается. Возможно, станет даже лучше

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

Марк Цукерберг уволил 8000 сотрудников Meta*. Работников попросили остаться дома в день сокращений, чтобы избежать хаоса, а уведомления об увольнении начали приходить в 4 часа утра.

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

Это не просто новость. Это иллюстрация ближайшего будущего IT-индустрии.

Читать далее

Один за всех: как я в одиночку тащу фуллстек‑проект, который незаметно разросся до соцсети

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

Начиналось как «сделаю себе сайтик про кино на пару выходных». Закончилось каталогом на десятки тысяч карточек, лентой, профилями, рейтингами, совместным просмотром и кучей фоновых задач. И всё это тащит один человек — я сам себе фронт, бэк, девопс, дизайнер и поддержка. Делюсь сжато: стек и грабли, без воды.

Стек выбирал не по хайпу, а по принципу «доеду и не утону в обслуживании»: FastAPI (быстро, асинхронно, автодоки), Next.js на React (SSR из коробки — критично для SEO), PostgreSQL (SQLite кончился на первых же конкурентных записях), Redis для кэша и рейт‑лимитов. Nginx + systemd на обычном VPS. Никакого Kubernetes — для одного это способ обслуживать инфраструктуру вместо разработки.

Читать далее

RAG для тех, кто разочаровался: почему retrieval ломается и как это починить

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

Вы собрали RAG-пайплайн: загрузили документы, нарезали на чанки, сгенерировали эмбеддинги, подключили векторную базу. Задаёте вопрос — модель отвечает уверенно и подробно. Показываете заказчику, тот в восторге. Потом начинается тестирование на реальных вопросах, и оказывается, что на половину из них система отвечает мимо: то находит не тот документ, то находит правильный, но не тот кусок, то вообще ничего релевантного не достаёт и модель уверенно галлюцинирует.

Каждый раз проблема не в модели (GPT-4 и Claude отвечают хорошо, если им дать правильный контекст), а в retrieval — в том, как мы ищем релевантные куски документов. Модель отвечает ровно настолько хорошо, насколько хорош контекст, который ей подсунули.

Рассмотрим три основные причины.

Разобрать RAG

Dart 3.12 — что нового в Dart?

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

В этом году на конференции Google I/O 2026 команды Flutter и Dart отмечают важную тему: «Везде, каждый день, создано всеми, для всех».

Dart 3.12 воплощает эту идею в жизнь. Мы делаем язык более доступным и продуктивным. Лаконичные новые примитивы, такие как приватные именованные параметры, наряду с экспериментальной поддержкой основных конструкторов, делают повседневное программирование более чистым. Но мы не остановились на синтаксическом уровне. Новые функции, такие как Agentic Hot Reload и добавление Genkit в экосистему Dart, гарантируют, что вы сможете создавать высокопроизводительные, готовые к использованию ИИ и агентные приложения, которые будут доступны пользователям в любой точке мира. Это справедливо как для индивидуального программирования, так и для парного программирования с ИИ-агентом.

Так что вперед flutter upgrade, следуйте инструкциям, чтобы изучить новые возможности Dart 3.12. Но помните, что более мощный Dart — это только половина дела. Когда вы будете готовы увидеть, как эти функции преобразуются в красивый пользовательский интерфейс, ознакомьтесь с публикацией в блоге «Что нового во Flutter» или на Хабре.

Читать далее

Flutter 3.44 — Что нового во Flutter?

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

Google I/O 2026.

Flutter 3.44 уже здесь, и это грандиозное событие! Этот релиз знаменует собой важную веху в истории Flutter: Hybrid Composition++ для Android, Swift Package Manager в качестве нового менеджера пакетов по умолчанию для iOS/macOS и улучшенную поддержку Vulkan для Impeller. Мы представляем предварительную версию поддержки многооконного режима для настольных компьютеров, и Canonical станет нашим новым ведущим разработчиком, а также начинаем масштабную архитектурную эволюцию, отделяя Material и Cupertino от основного фреймворка. Мы переосмысливаем UX для агентного взаимодействия с пользователями с помощью GenUl и переосмысливаем опыт разработчиков с помощью Agentic Hot Reload и Dart & Flutter Agent Skills. Flutter расширяет возможности приложений следующего поколения — повсюду, от мультимедийной системы Toyota RAV4 2026 года до грядущего SDK для webOS от LG. Мы очень рады поделиться с вами всеми новостями и обновлениями; добро пожаловать в Flutter 3.44!

Читать далее

GitHub блокируют, Bun переписали за 9 дней, и частный космодром в России

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

14-й выпуск IT-новостей от OpenIDE!

Побывал на HolyJS в Москве, пообщался с фронтендерами и понял разницу в вайбе. Плюс — прогрев к блокировке GitHub, эксперимент Bun с переписыванием на Rust за 9 дней, и немного про частный российский космодром.

Читать далее

AsmX с движком Raptor: Архитектура абсолютного контроля

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

Raptor Engine: Как 30 000 строк кода на TypeScript вдохнули жизнь в компилятор AsmX

Можно ли объединить абсолютный контроль низкоуровневого ассемблера x86-64 с изяществом ООП, шаблонов и безопасных абстракций в духе C++? Разбираем масштабное обновление отечественного компилятора AsmX. Под капотом — честные 30 тысяч строк хардкорной архитектуры: от прямого доступа к аппаратной SIB-адресации CPU и хитрых махинаций с регистрами при вызове знаковых movsx/imul/idiv, до разбора анатомии новой стандартной библиотеки (std::optional и std::pair), работающей по принципу Zero-Cost Abstractions. Узнайте, как мономорфизация AST-деревьев и System V ABI позволяют выжимать максимум из кремния без единого байта накладных расходов.

Читать далее

Каким должен быть язык программирования, чтобы с ним хорошо работали AI-агенты

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

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

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

Куда движемся

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

Повесть о конфигурации как инженерной гигиене

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

Привет, Хабр! Меня зовут Юрий Соловьёв, я ведущий инженер в команде экосистемы Tarantool. С опытом я пришел к тому, что конфигурация должна иметь строгую спецификацию, так же как и HTTP API. В этой статье я предлагаю альтернативный подход на базе protobuf и постараюсь показать, что это не избыточная сложность, а необходимый уровень инженерной гигиены — особенно для систем, рассчитанных на долгую и стабильную жизнь. Это в какой-то мере технорассказ, которым я хочу поделиться — и именно в такой форме.

Читать далее

12 паттернов, которые приведут твой код в порядок

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

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

Читать далее

Властелин корзин: две вкладки и один Redis (часть 4)

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

Привет, Хабр! Это снова Алиса из сериала про Laravel рядом с Битриксом.  В первой части мы аккуратно подселили Laravel к Битриксу. Во второй — растащили события, авторизацию и тяжелую логику по нормальным сервисам, а в третьей — перестали мучить каталог SQL-запросами и отдали поиск OpenSearch.

Теперь добрались до места, где любой e-commerce начинает показывать характер: корзина и расчет заказа. Это каталог может тормозить незаметно. А вот если корзина начинает чудить — это уже чувствует бюджет.

Читать далее

Разработка аппаратной платформы для соревнований по Embedded программированию

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

Предыстория

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

Несколько лет назад я участвовал в соревнованиях по электронике и очень вдохновился интересным подходом и вовлеченностью разработчиков заданий. Прошло время, стал ездить на соревнования в качестве эксперта и в какой-то момент решил разработать устройство для одного из этапов соревнований – «программирование».

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

«Long story short…»

Превратили настолку в цифровую игру на ̶U̶n̶i̶t̶y̶ Godot

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

Ambush! — быстрая дуэльная игра о боевых построениях и захвате фишек противника. Когда-то один из членов нашей команды создал настольную версию этой игры, а в рамках студенческого проекта в ФИИТ мы решили превратить её в полноценную компьютерную с мультиплеером. Рассказываем, почему выбрали не Unity, а Godot, что учились делать впервые без опыта и с какими проблемами столкнулись.

Читать далее

Как я собрал кубик Рубика в браузере на чистом Canvas

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

Недавно я увидел видео, где маленький мальчик собирает кубик Рубика за 2,76 секунды (вот оно), и мне тоже захотелось научиться его собирать. Конечно, не за такое время, но главное — суметь сложить хотя бы за 10 минут. Главная проблема в том, что кубика у меня нет; можно купить, но это как-то скучно, на троечку. Поэтому я подумал: а почему бы не написать за выходные простой код, чтобы побыстрее посмотреть и покрутить кубик, а потом уже можно и купить. Заодно и разберусь, где что находится у кубика.

Читать далее

NOT IN — не противоположность IN: что в запросе ломает один NULL

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

В SQL самые опасные ошибки часто выглядят как рабочие запросы. Они не падают, не ругаются на синтаксис и не подсвечиваются в IDE — просто возвращают пустоту там, где должны быть данные.

В этой статье разберём классическую ловушку NOT IN: почему один NULL в подзапросе может «отравить» всю выборку, чем IN на самом деле отличается от NOT IN и почему в таких случаях безопаснее писать через NOT EXISTS.

Читать далее