Pull to refresh
4
Send message

Промпт — это творчество? Нет, это 10 блоков в жёстком порядке

Level of difficultyEasy
Reading time14 min
Reach and readers17K

Все знают, как писать промпты правильно: роль, критерии готовности, защита от выдумок, разметка под конкретную модель. Проблема в другом - выписывать все эти пунктыруками для каждого нового промпта утомительно. Да ещё и думать надо :) Поэтому я собрал скилл, который делает рутину за меня: описываешь задачу своими словами, получаешь полноценный промпт под Claude, GPT, Gemini или DeepSeek. Под катом - как он устроен: десять обязательных блоков, Python-проверяльщик, протокол разнообразия из свежей научной работы. Скилл открытый, ссылка внутри.

Читать далее

Алиасинг памяти в C++: прошлое, настоящее, будущее

Level of difficultyMedium
Reading time18 min
Reach and readers16K

Привет, Хабр! Меня зовут Владислав, я разрабатываю компиляторы в YADRO. В этой статье я расскажу вам про алиасинг памяти в C++: как он развивался, к чему пришел сейчас и что комитет по стандартизации языка думает делать с алиасингом в будущем. По пути я немного затрону алиасинг в других языках, рассмотрю связанные случаи undefined behavior, а также пропозалы C++, которые, как ожидалось, проблемы с алиасингом решат.

Читать далее

Почему Claude Code и Codex не ускоряют команду: у компании нет общей памяти

Level of difficultyEasy
Reading time6 min
Reach and readers18K

Компании уже оплачивают сотрудникам Claude Code, Cursor или Codex, но не всегда видят рост производительности.

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

Разбираю, зачем команде общая память, и при чём тут GBrain, OpenBrain и обычные Markdown-файлы.

Научиться работать с контекстом

А есть ли бесплатные API нейросетей?

Reading time3 min
Reach and readers35K

Третьего дня я решил сделать лид-магнит для своего Telegram-канала. Схема такая - бот собирает у пользователя текст, обрабатывает его нейросетью, выдает что-то полезное, и в конце просит подписаться на канал в обмен на результат. Aiogram 3, Python, VPS за 150 рублей - ничего необычного.

Встал первый вопрос - за что платить? Бот прототипный, аудитория на входе пока еще, собственно, не особо и понятно сколько человек. Платить $20 в месяц ради теста гипотезы - нет. Мы не ищем легких путей. Пошел разбираться, что вообще бесплатного есть.

Читать далее

Senior‑разработчики как исчезающий вид

Level of difficultyEasy
Reading time12 min
Reach and readers43K

Как AI меняют карьерный лифт в разработке: почему проблема не в исчезновении сеньоров, а в том, что рынок всё хуже выращивает новых инженеров. Разбираем автоматизацию нижнего слоя задач, AI‑потолок джунов, контур ответственности и риск разрыва воспроизводства специалистов.

Читать далее

Манипуляции: как распознать и не поддаться

Level of difficultyEasy
Reading time15 min
Reach and readers28K

Привет, Хабр. Меня зовут Кирилл Комиссаров, я работаю в IT с 2013 года, последние несколько лет — тимлидом. Сейчас руковожу командой разработки в юните саппорта в Авито.

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

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

Читать далее

Claude Code — полный гайд и обучение для новичков с нуля

Level of difficultyEasy
Reading time40 min
Reach and readers138K

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

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

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

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

Читать далее

Skills для AI-агентов: всё, что тебе нужно знать

Level of difficultyEasy
Reading time6 min
Reach and readers14K

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

На практике же часто можно наблюдать:
– один skill активируется почти всегда, даже когда не нужен
– другой — не включается в момент, когда мы на него рассчитываем
– третий — срабатывает «в паре» с соседними и они мешают друг другу

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

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

Читать далее

Что такое RAG-система? Полный разбор от теории до продакшена

Level of difficultyMedium
Reading time28 min
Reach and readers22K

Что такое RAG-система? Retrieval-Augmented Generation — «генерация, дополненная извлечением»: так называют архитектурный подход, при котором модель усиливает ответы, динамично дополняя внутренние знания актуальной информацией из внешних источников. В практическом смысле: RAG — это способ увеличить релевантность ответов языковой модели без хлопот с переобучением.

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

Читать далее

Выжать больше из локальных LLM. Ollama медленнее llama.cpp в 3 раза. UD_Q4_K_XL лучше чем Q4_K_M, а вес тот же и т.д

Reading time22 min
Reach and readers59K

Самый просто способ запустить локальную LLM - это установить ollama или LM Studio. Это быстро и просто, но вы теряете и в скорости, и в качестве. Почему UD_Q4_K_XL лучше при том же размере, почему квант Q3 может быть медленнее чем Q4. Хорошая ли идея взять REAP для вырезания ненужных экспертов из MoE. Кто быстрее, Linux или Windows. В общем как выжать больше из локальных LLM на домашнем железе.

Читать далее

Records в C#: Классы, которые пишут код за вас

Level of difficultyEasy
Reading time13 min
Reach and readers7.4K

Давайте представим, что вам нужно создать класс для хранения данных пользователя. Сколько строк кода вы напишете? Конструктор, свойства, метод ToString(), сравнение объектов... А если добавится новое поле? Придется обновлять конструктор, метод Equals, GetHashCode — утомительная работа, которая не добавляет бизнес-ценности вашему приложению.

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

Читать далее

Устройство и работа классов базовых ограничителей универсального компонента ограничения скорости .NET

Level of difficultyHard
Reading time84 min
Reach and readers4K

Это - третья статья цикла про функцию ограничения скорости обработки запросов в ASP.NET Core. Она содержит концептуальное (т.е. раскрывающее состав и взаимодействие частей функции друг с другом) описание классов универсального компонента ограничения скорости .NET. Функция ограничения скорости обработки запросов в ASP.NET Core, которая является предметом рассмотрения всего цикла, базируется именно на этом универсальном компоненте. В этой статье я собираюсь завершить описание универсального компонента ограничения в .NET: описать входящие в его состав базовые (неселективные) ограничители.

Предупреждение: если вам не требуется или не интересно просто для себя (как это интересно мне) разбираться, как устроена и работает функция ограничения скорости обработки запросов в ASP.NET Core, то эта статья, скорее всего, покажется вам длинной и занудной. Потому что в ней рассказывается о весьма специфических подробностях, знание которых совершенно не требуются для того чтобы просто взять и начать использовать в своей программе функцию ограничения скорости обработки запросов ASP.NET Core. Для использования этой функции, скорее всего достаточно будет изучить примеры - или из первой статьи цикла - руководства по использованию, или вообще из документации на сайте Microsoft. В таком случае вам, наверное, читать эту статью не стоит. Но, возможно, и в этом случае вам стоит хотя бы заглянуть в приложения к ней. Там я, в качестве иллюстрации к основному материалу статьи, описал сделанные мной компоненты, позволяющие использовать функцию ограничения скорости нестандартным способом: возможно, вы найдёте применение одному из таких компонентов в своей программе. Компоненты эти оформлены в виде библиотек классов .NET, так что для их использования уже сейчас можно взять их в исходном виде и добавить в свое решение (solution). Причем, при описании каждого компонента я постарался вынести в начало их описания пример его использования - так, чтобы для использования компонента не требовалось читать остальной текст приложения, где написано как он устроен и работает.

Ну, а если вам пришлось разбираться (потому что эта функция не работает так, как вы ожидали) или, как мне, просто захотелось разобраться для себя, как работает функция ограничения скорости обработки запросов в ASP.NET Core - читайте дальше.

Читать далее

Универсальный компонент ограничения скорости в .NET

Level of difficultyHard
Reading time83 min
Reach and readers5.2K

Это - вторая статья цикла про функцию ограничения скорости обработки запросов в ASP.NET Core. Она содержит концептуальное (т.е. раскрывающее состав и взаимодействие частей функции друг с другом) описание классов универсального компонента ограничения скорости .NET. Функция ограничения скорости обработки запросов в ASP.NET Core, которая является предметом рассмотрения всего цикла, базируется именно на этом универсальном компоненте.

Предупреждение: если вам не требуется или не интересно просто для себя (как это интересно мне) разбираться, как устроена и работает функция ограничения скорости обработки запросов в ASP.NET Core, то эта статья, скорее всего, покажется вам длинной и занудной. Потому что в ней рассказывается о весьма специфических подробностях, знание которых совершенно не требуются для того чтобы просто взять и начать использовать в своей программе функцию ограничения скорости обработки запросов ASP.NET Core. Для использования этой функции, скорее всего достаточно будет изучить примеры - или из первой статьи цикла - руководства по использованию, или вообще из документации на сайте Microsoft. В таком случае вам, наверное, читать эту статью не стоит. Но, возможно, и в этом случае вам стоит хотя бы заглянуть в приложения к ней. Там я, в качестве иллюстрации к основному материалу статьи, описал сделанные мной компоненты, позволяющие использовать функцию ограничения скорости нестандартным способом: возможно, вы найдёте применение одному из таких компонентов в своей программе. Компоненты эти оформлены в виде библиотек классов .NET, так что для их использования уже сейчас можно взять их в исходном виде и добавить в свое решение (solution). Причем, при описании каждого компонента я постарался вынести в начало их описания пример его использования - так, чтобы для использования компонента не требовалось читать остальной текст приложения, где написано как он устроен и работает.

Ну, а если вам пришлось разбираться (потому что эта функция не работает так, как вы ожидали) или, как мне, просто захотелось разобраться для себя, как работает функция ограничения скорости обработки запросов в ASP.NET Core - читайте дальше.

Читать далее

Руководство по использованию функции ограничения скорости обработки входящих запросов в ASP.NET Core

Level of difficultyEasy
Reading time35 min
Reach and readers5.2K

Здравствуйте. Меня зовут Валерий и я - кодоголиклюблю писать программы. А ещё я люблю не только писать свои программы, но и читать чужие.

Недавно мне довелось погрузиться в чтение кода функции ограничения скорости обработки входящих запросов к веб-приложению на ASP.NET Core. И в этом цикле статей я хочу поделиться найденным и понятым мной. Тем более, ещё в самом начале своих штудий я обнаружил, что эта тема на Хабре просто не рассматривалась никак - даже на уровне пересказа документации с сайта Microsoft (весьма скудной, кстати). А потому вот прямо сейчас я хочу заполнить этот пробел.

Читать далее

Компонент-обработчик ограничения скорости обработки запросов в ASP.NET Core

Level of difficultyHard
Reading time92 min
Reach and readers3.7K

Это - четвертая и последняя (пока) статья цикла про ограничение скорости обработки запросов в ASP.NET Core. Она содержит концептуальное (т.е. раскрывающее состав и взаимодействие частей друг с другом) описание функции ограничения скорости обработки запросов в ASP.NET Core. В этой статье рассмотрено, как на базе универсального компонента ограничения скорости реализована функция ограничения скорости обработки запросов в ASP.NET Core.

Предупреждение: если вам не требуется или не интересно просто для себя (как это интересно мне) разбираться, как устроена и работает функция ограничения скорости обработки запросов в ASP.NET Core, то эта статья, скорее всего, покажется вам длинной и занудной. Потому что в ней рассказывается о весьма специфических подробностях, знание которых совершенно не требуются для того чтобы просто взять и начать использовать в своей программе функцию ограничения скорости обработки запросов ASP.NET Core. Для использования этой функции, скорее всего достаточно будет изучить примеры - или из первой статьи цикла - руководства по использованию, или вообще из документации на сайте Microsoft. В таком случае вам, наверное, читать эту статью не стоит. Но, возможно, и в этом случае вам стоит хотя бы заглянуть в приложения к ней. Там я, в качестве иллюстрации к основному материалу статьи, описал сделанные мной компоненты, позволяющие использовать функцию ограничения скорости нестандартным способом: возможно, вы найдёте применение одному из таких компонентов в своей программе. Компоненты эти оформлены в виде библиотек классов .NET, так что для их использования уже сейчас можно взять их в исходном виде и добавить в свое решение (solution). Причем, при описании каждого компонента я постарался вынести в начало их описания пример его использования - так, чтобы для использования компонента не требовалось читать остальной текст приложения, где написано как он устроен и работает.

Ну, а если вам пришлось разбираться (потому что эта функция не работает так, как вы ожидали) или, как мне, просто захотелось разобраться для себя, как работает функция ограничения скорости обработки запросов в ASP.NET Core - читайте дальше.

Читать далее

Обучение LLM с нуля на c# и экспорт в GGUF. OpenCL против CUDA

Level of difficultyEasy
Reading time23 min
Reach and readers9.3K

Напишем с нуля на c# маленькую модель размером 422 Кб, сохраним в GGUF и запустим в LM Studio.

А в этом нам поможет всего один единственный компонент: ILGPU, позволяющий обучать модель на OpenCL. А точнее - на встройке AMD.

Ну а если у вас есть видеокарта NVidia - компонент позволяет обучать модель с помощью CUDA.

Читать далее

Discriminated Unions: Что не так с реализациями объединений в C#?

Level of difficultyMedium
Reading time39 min
Reach and readers12K

В жизни каждого программиста рано или поздно наступает момент, когда хочется вернуть из функции «либо то, либо это». Правильным языком это называется Discriminated Union (далее DU). Его суть проста: тип должен представлять одно значение из нескольких возможных (поэтому реализации называют «OneOf», т.е «один из»).

Казалось бы, что это довольно станадртная ситуация и нечего тут бухтеть, но именно c# кажется особенным в этом плане по сравнению с другими языками. Давайте разберёмся как устроены DU в других языках программирования.

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

Читать далее

Выделение регистров процессора при помощи генетического алгоритма

Reading time16 min
Reach and readers12K

Эксперимент, который многое объясняет

Оригинал этого поста также вошёл в число документов по проектированию платформы .NET: lsra-heuristic-tuning.

Читать далее

Win32 API и ностальгия по окнам странной формы

Level of difficultyEasy
Reading time6 min
Reach and readers36K

Я по горло сыт стандартно выглядящими приложениями. Сегодня все десктопные приложения Windows выглядят одинаково, да и внутри устроены одинаково: их создают на основе дурацких браузерных обёрток React, Electron, electronbun и Tauri, имитирующих реальные десктопные приложения. Они медленно работают и занимают кучу памяти — по сути, это bloatware. Блокнот — это, блин, приложение для простых ЗАМЕТОК, а не замена Word, калькулятор — это калькулятор, а не планировщик лунной миссии НАСА. На каком-то этапе Microsoft сбилась с курса, как будто сдалась и передала бразды правления куче веб-разработчиков, незнакомых с концепцией оптимизации.

Чёртов Блокнот занимает в памяти почти 50 МБ, хотя эквивалентное приложение, написанное на чистом Win32 C, занимает 1,8 МБ. Вроде бы, по современным меркам 50 МБ — это не так много, но в том-то и смысл: эти мегабайты постепенно накапливаются. Недавно я купил новый Intel Ultra 9 285 с 32 ГБ ОЗУ, но при запуске Windows 11 память уже была заполнена на 77%.

Программирование на Win32 API — утерянное ныне искусство; я с ностальгией вспоминаю, как когда-то программировали приложения для Windows. Процесс был запутанным, но обеспечивал полный контроль.

Читать далее

Галлюцинации LLM — это артефакты сжатия. И это объясняет вообще всё

Level of difficultyEasy
Reading time5 min
Reach and readers34K

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

Вы бы сказали: «это lossy-компрессия, часть данных неизбежно потеряется».

И были бы правы. Потому что именно это делает LLM.

Читать далее
1
23 ...

Information

Rating
Does not participate
Registered
Activity