Обновить
1399.69

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

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

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

Экспериментальная система skills в OpenAI Codex: как агент учится пользоваться инструментами

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

В Codex появилась экспериментальная фича — skills: декларативное описание локальных «навыков» агента с автоматическим discovery и строгими правилами применения. В статье разберём, как это работает под капотом, зачем нужно и как использовать это в своих проектах.

Читать далее

Новости

Настраиваем ИИ-помощника бесплатно и без вендорлока в IntelliJ IDEA, GoLand, WebStorm, OpenIDE и GigaIDE

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

AI-помощники в IDE — уже не фантастика, а ежедневная реальность. Но как сделать так, чтобы они действительно помогали, не лезли не в тему, не сливали код в облако и не требовали подписку на каждого чиха? Ответ — Continue: open source AI-ассистент, который интегрируется с IntelliJ IDEA, GoLand, WebStorm, OpenIDE и другими IDE на базе IntelliJ Platform. 

Он предоставляет автодополнение, чат, команды над выделенными фрагментами и даже агентный режим с патчами на несколько файлов. Главное — вы выбираете модель и правила игры.

Читать далее

Защита контейнеров изнутри: как работает первый российский open-source-инструмент для мониторинга рантайма

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

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

В данном случае на классические средства защиты рассчитывать не приходится: они охраняют контейнеры снаружи и не видят, что происходит внутри. А большинство инструментов для выявления угроз в среде выполнения — сложные и дорогие. Тем не менее выход есть: недавно специалисты из команды PT Container Security представили рынку первое в России открытое решение для защиты рантайма контейнерных сред — Runtime Radar. Подробнее о нем в нашей статье рассказывают руководитель разработки Никита Ладошкин и эксперт Виталий Шишкин (@JCD3nt0n).

Читать далее

Эволюция плеера RUTUBE: от монолита к гибким модулям

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

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

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

Читать далее

Настоящие и будущее поиска в Ecommerce

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

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

Читать далее

Использование библиотеки spaCy для поиска сущностей в тексте

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

Снова приветствую всех читателей Хабр.

В предыдущей статье был приведен пример создания кода проекта для задачи автоматизации обработки данных, в результате чего получилось подготовить нужную информацию по модели данных ЛОЦМАН: PLM. Эти данные планируется использовать для построения механизмов обработки поисковых запросов пользователей к базе ЛОЦМАН:PLM — в частности, для распознавания сущностей в тексте запроса. Это позволит понимать, на какие объекты модели данных ссылается пользователь: изделия, их параметры, типы документов и так далее.

Для решения новой задачи я решил опробовать возможности библиотеки spaCy, в которой сущности можно распознавать на основе заранее заданных паттернов. В ходе экспериментов с библиотекой и её модулями EntityRuler и SpanRuler я столкнулся с рядом особенностей, и в данной статье делюсь накопленным опытом и наработками — надеюсь, они окажутся полезными и для вас.

Читать далее

Я написал алгоритм вычисления дат, который на 30–40% быстрее остальных

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

В этой статье я представлю мой завершённый очень быстрый алгоритм преобразования дат.. Он обеспечивает существенный прирост скорости, по величине сравнимый с приростом, достигнутым предыдущим самым быстрым алгоритмом (Neri-Schneider 2021) относительно его предшественника (C++ Boost). Полная реализация алгоритма на C++ выпущена как свободное и бесплатное ПО (лицензия BSL-1.0).

Алгоритм генерирует точные результаты за период ±1,89 триллиона лет, поэтому подходит для обработки полного 64-битного времени UNIX (в секундах).

Читать далее

Обзор Divoom Times Gate для любителей кастомизации

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

Привет, Хабр! На связи Владимир Туров, разработчик в Selectel. В рекомендациях одного маркетплейса мне попалось чудо китайской киберпанковой мысли — часы и по совместительству пиксельный дисплей Divoom Times Gate. Мне понравился визуальный стиль и потенциальная возможность выводить любую информацию. У часов есть свое приложение с регистрацией, что навевает грустные мысли… Вдруг часы управляются исключительно через серверы производителя? 

Я купил девайс и немного разобрался в его интерфейсах. В этой статье проведу минимальный обзор устройства и расскажу про возможности API и локального управления на примере шуточной интеграции с Baldur’s Gate 3.

Читать далее

Как я писал книгу «Python для инженерных задач»

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

Пост о том, как появилась идея написать книгу «Python для инженерных задач», и о том, как эта идея реализовывалась.

Читать далее

Трактор без тракториста: почему разработка не упрощается при наличии современных инструментов

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

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

Продолжаю делиться дискуссиями из нашего телеграм-канала Dev Q&A. На этот раз собрались поговорить о том, почему при всём богатстве инструментов — Kubernetes, CI/CD, low-code, AI-ассистенты — разработка не становится ни быстрее, ни дешевле.  Собрал ключевые мысли в статью. Получилось про три столпа эффективности, про хаос который понятнее порядка, и про то, почему скрам по книжке остановил компанию на две недели, а Waterfall принёс миллиард. 

Читать далее

10% на LLM и 90% на инженерию: как российские компании используют ИИ

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

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

Продолжаю делиться материалами живых дискуссий, которые идут на телеграм-канале Dev Q&A. На этот раз тема — выбор между open source и коммерческими LLM для корпоративных задач. Обсудили главные болевые точки: почему почти все корпоративные заказчики требуют он-прем, как узкоспециализированные модели обходят универсальные решения, насколько реален GPU-дефицит для практических задач.

Читать далее

ИИ в разработке: почему иногда «в три раза быстрее» не означает «проект раньше»

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

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

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

Читать далее

Почему рынок найма в IT ощущается все хуже? +Опрос

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

Привет, Хабр!
Я - AddRaiser, фронтендер с 6 годами опыта и геймдевелопер по вечерам :)

Сегодня было бы интересно собрать основные причины упадка на рынке айти и собрать ваши мнения, которые могли повлиять на ухудшение ситуации.
Буду благодарен, если проголосуете в конце в голосованиях по этому поводу. И напишете свое видение этого вопроса, я вполне мог что-то забыть.
Сразу скажу, статья будет больше про субъективное мнение со стороны того, кто и нанимался и нанимал, однако я постараюсь добавлять ссылки на вещи, которые я изучал. И никаких ссылок на ТГ или вроде того, кроме одной ссылки на игру выше.
Я вам не инфоцыган :)

Читать далее

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

Изменения цен на GitHub Actions

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

GitHub только что анонсировал изменения в ценообразовании Actions. Ранее GitHub Actions имел бесплатный control plane. Это означало, что если вы использовали GitHub Actions, но запускали задачи вне GitHub-hosted runners — будь то ваши собственные машины или в вашем собственном AWS аккаунте — вы ничего не платили GitHub за эти минуты; вы платили только за вычислительные ресурсы. Теперь подход изменился. Команда Spring АйО подготовила перевод анонса команды Github.

Читать далее

Вайбкодим с плагином Kilo Code в VS Code и IntelliJ IDEA из России

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

В новой статье от команды AI for Devs разбираемся, как организовать вайб-кодинг с плагином Kilo Code в VS Code и IntelliJ IDEA из России. Пошагово настраиваем Kilo Code через RouterAI, подключаем Claude, GPT, DeepSeek и другие модели, разбираем роли агента, diff-патчи, правила проекта и нюансы работы с контекстом.

Читать далее

Анатомия performance-critical C++ кода на примере ECS

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

Всем привет! Это продолжение статей про мою ECS with Sectors в моём движке Stellar Forge!

В предыдущей статье я описал структуру памяти, что являлось подготовкой фундамента для быстрой итерации, а сейчас хочу рассказать как по этой памяти передвигаться.
Получилась общая обзорная статья о том, как заставить C++ код быть быстрее, так что устраивайтесь поудобнее :-)

Статья будет полезна всем, кто пишет performance-critical код на C++: геймдев, HFT, обработка данных, embedded.

Читать далее

Как мы делаем курсы: взгляд программного эксперта Яндекс Практикума

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

Если преподавание помогает развить навыки, то создание образовательного курса с нуля — по-настоящему проверяет на прочность.

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

Читать далее

AsmX G3 v30-rev1.0: мы взорвали четвёртую стену низкоуровневого программирования

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

AsmX G3 v30.0.0-rev1.0 — крупное архитектурное обновление, которое делает ассемблер не «инструментом 90-х», а полноценным современным языком системного программирования. Главные изменения: пакетная сборка --multiboot с Supervisor, атомарная очистка --multiclean, поддержка изменяемых данных (.data), новые ISA-инструкции (включая inc/dec и movsxd) и выразительный синтаксис функций с экспериментальной поддержкой возвращаемых типов.

Одной командой теперь можно собрать загрузчик, ядро, модуль ядра и динамическую библиотеку — и Supervisor гарантирует консистентность и изолированность ошибок в подзадачах. Для разработчиков это означает: CI в 3–5 строк вместо громоздких Makefile, меньше рутины и полная управляемость сборки.

Языковые улучшения (честные строки, @syscall, @fn share, @fn static, полноценная .data) переводят AsmX G3 в категорию «язык для реальных проектов»: библиотеки .so, production-модули .ko и микро-ОС — всё это теперь удобно писать, собирать и отлаживать на чистом ассемблере.

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

Читать далее

Ускоряем LLM по максимуму. Как я создал кросс-платформенный Flash Attention с поддержкой Turing+ архитектур и не только

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

На сегодняшний день трансформеры правят балом хайпа в мире машинного обучения, особенно после появления ChatGPT и ему подобных языковых моделей. Это стало возможным благодаря лежащему в основе их архитектуры механизму внимания (attention), однако он же и является слабым местом с точки зрения производительности и потребления памяти. Хотя в связи с этим и была разработана изящная концепция Flash Attention (Tri Dao), её существующие реализации имеют ряд ограничений.

Поэтому представляю вашему вниманию первую и единственную open-source реализацию Flash Attention 2 на Triton с поддержкой Linux и Windows, Turing-Blackwell архитектур (теперь можно работать в Google Colab и Kaggle), гомо и гетерогенных кластеров, опциональным детерминизмом, а также возможностью ручной кастомизации ядер (kernels) для более гибкой настройки под каждую GPU архитектуру отдельно. Более подробно о том как это устроено и не только — далее в статье.

Читать далее

Await своими руками в C#

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

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

Многим кажется, что await работает только с Task и ValueTask, но на самом деле язык позволяет сделать любой объект ожидаемым — нужно лишь реализовать определённый паттерн.

Итак, зачем нужен свой await? Бывают случаи, когда вам хочется написать асинхронный метод, но результат приходит не из готового Task или таймера. Например, ждёте какое-то событие, изменение файла, считывание из сокета, или просто хотите встроить задержку без запуска Task. Когда вы пишете await expr, компилятор в глубине понимает так: берётся результат expr.GetAwaiter(), затем вызывается awaiter.IsCompleted. Если false, он подписывается на awaiter.OnCompleted, когда завершится, и потом берёт awaiter.GetResult().

Читать далее

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