🔥 Открытое занятие по AgentOps — курс стартовал!
Сегодня в 19:00 по МСК пройдет первое занятие нового потока, на которое может прийти каждый. Оцените пользу нашего подхода на ретрансляции урока в VK!
👨💻 Спикер: Андрей Носов
Тема: Архитектура управления: state machine для AI-агентов
Будем разбираться, как использовать State machine в качестве главного оружия против стохастики (непредсказуемости) LLM.
Что в программе:
● State machine: инварианты и терминальные состояния;
● Паттерны маршрутизации: Supervisor, ReAct, Plan-and-Solve;
● Детекция циклов и настройка аварийных выходов;
● Абстракция от модели: как сделать каркас, который переживет смену LLM/провайдера;
● Адаптация графов под ограничения локальных моделей;
● Версионирование графов и миграции стейта.
Результат занятия: Вы поймете, как спроектировать надежный каркас агента с жестким контролем исполнения и переходов.
👉 Подписывайтесь на нашу группу ВКонтакте, чтобы не пропустить старт трансляции!
Сегодня в 19:00 по МСК пройдет первое занятие нового потока, на которое может прийти каждый. Оцените пользу нашего подхода на ретрансляции урока в VK!
👨💻 Спикер: Андрей Носов
Тема: Архитектура управления: state machine для AI-агентов
Будем разбираться, как использовать State machine в качестве главного оружия против стохастики (непредсказуемости) LLM.
Что в программе:
● State machine: инварианты и терминальные состояния;
● Паттерны маршрутизации: Supervisor, ReAct, Plan-and-Solve;
● Детекция циклов и настройка аварийных выходов;
● Абстракция от модели: как сделать каркас, который переживет смену LLM/провайдера;
● Адаптация графов под ограничения локальных моделей;
● Версионирование графов и миграции стейта.
Результат занятия: Вы поймете, как спроектировать надежный каркас агента с жестким контролем исполнения и переходов.
👉 Подписывайтесь на нашу группу ВКонтакте, чтобы не пропустить старт трансляции!
😁1
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
В чём главная проблема такого интерфейса для компонентной архитектуры?
Anonymous Quiz
4%
std::string запрещено передавать по значению — стандарт допускает лишь передачу по ссылке
6%
Виртуальные функции с параметрами-классами нельзя объявлять в общих заголовочных файлах
37%
Раскладка std::string — деталь реализации; при разных рантаймах ABI не совпадёт, память испортится
29%
std::string слишком медленно копируется, и вызовы через границу модуля станут узким местом
24%
Никакой проблемы нет: стандарт C++ гарантирует бинарную совместимость std::string в сборках
🌪️ Эффект «затишья перед бурей»: что будет с зарплатами и наймом в IT после 2027 года
Затишье 2025-2026 годов кажется концом эпохи, но если посмотреть на три предыдущих кризиса — доткомы, 2008-й и пандемию — картина другая. Разбираю, почему это типичная фаза восстановления и что будет с зарплатами и наймом после 2027-го.
👉 Статья
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
Затишье 2025-2026 годов кажется концом эпохи, но если посмотреть на три предыдущих кризиса — доткомы, 2008-й и пандемию — картина другая. Разбираю, почему это типичная фаза восстановления и что будет с зарплатами и наймом после 2027-го.
👉 Статья
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
😁2
Forwarded from Библиотека программиста
This media is not supported in your browser
VIEW IN TELEGRAM
Algorithm Visualizer показывает, что происходит внутри кода шаг за шагом.
Хороший инструмент для подготовки к собеседованиям и изучения алгоритмов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Если думал, что
system_clock — это просто текущее время. На деле это отсчёт от эпохи Unix (1 января 1970 года), и его поведение гораздо сложнее, чем кажется.system_clock::now(), ОС читает значение из аппаратного таймера и возвращает разницу между текущим моментом и эпохой. Эта информация синхронизируется с NTP серверами для корректировки дрейфа кварцевого генератора.auto now = std::chrono::system_clock::now();
// Внутри: берётся значение из /dev/rtc или Windows' GetSystemTimeAsFileTime()
// И преобразуется в количество тиков с 1970-01-01 00:00:00 UTC
system_clock вернёт совершенно неправильное значение. Это не баг, это по дизайну — часы должны отражать реальное время.Для критичных операций, где важна монотонность, используй
steady_clock — он не зависит от системного времени и гарантирует, что каждый следующий вызов вернёт значение больше предыдущего.system_clock — это связь приложения с реальным миром через батарейку. Если нужна надёжность, используй другие часы.📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡7
🔥 ИИ-выходные: Собери своего AI-агента за 2 дня
Хватит просто читать про ИИ, пора собирать автономные системы руками! 1–2 августа пройдет хардкорный онлайн-интенсив для junior-middle разработчиков.
Формат: теория ➡️ сразу практика. Вы будете управлять AI-инструментами.
🛠️ Как всё пройдет:
Для кого: Вы пишете на Python, работаете с Git и терминалом. (С нуля не подойдет, темп очень быстрый!)
Артефакт на выходе: Рабочий репозиторий с вашим агентом, который не стыдно показать команде.
👨💻 Спикер: Алексей Жиряков (Сбер, GenAI).
Места ограничены!
👉 Изучить программу и занять место
Хватит просто читать про ИИ, пора собирать автономные системы руками! 1–2 августа пройдет хардкорный онлайн-интенсив для junior-middle разработчиков.
Формат: теория ➡️ сразу практика. Вы будете управлять AI-инструментами.
🛠️ Как всё пройдет:
День 1 (Суббота): разбираем анатомию агента, подключаем инструменты (shell, GitHub, Postgres) и дебажим трейсы.
День 2 (Воскресенье): собираем собственного агента под вашу задачу, настраиваем Eval + Guardrails (чтобы бот не галлюцинировал) и проводим демо.
Для кого: Вы пишете на Python, работаете с Git и терминалом. (С нуля не подойдет, темп очень быстрый!)
Артефакт на выходе: Рабочий репозиторий с вашим агентом, который не стыдно показать команде.
👨💻 Спикер: Алексей Жиряков (Сбер, GenAI).
Места ограничены!
👉 Изучить программу и занять место
Настоящий View в C++20 должен наследовать от
std::ranges::view_base или std::ranges::view_interface<T>. Давайте создадим практический пример — stride_view, который пропускает элементы диапазона с заданным шагом.Любой приличный view должен наследоваться от
std::ranges::view_interface<T>. Это даёт тебе begin(), end(), size() и прочие плюшки бесплатно.template<std::ranges::input_range R>
class stride_view : public std::ranges::view_interface<stride_view<R>> {
private:
// Если R уже view, используем R. Иначе — ref_view для безопасности
R base_;
std::ranges::range_difference_t<R> stride_;
public:
stride_view() = default;
stride_view(R base, std::ranges::range_difference_t<R> stride)
: base_(std::move(base)), stride_(stride) {
// Критическая проверка: stride должен быть положительным!
if (stride_ <= 0) {
throw std::invalid_argument("stride must be > 0");
}
}
auto begin() {
return stride_iterator<R>{ std::ranges::begin(base_),
std::ranges::end(base_), stride_ };
}
auto begin() const {
return stride_iterator<R>{ std::ranges::begin(base_),
std::ranges::end(base_), stride_ };
}
auto end() {
return stride_sentinel<R>{};
}
auto end() const {
return stride_sentinel<R>{};
}
};
Итератор — это сердце view. На каждый
operator++() он прыгает на stride_ позиций вперёд, не переходя за конец диапазона:template<std::ranges::input_range R>
struct stride_sentinel {};
template<std::ranges::input_range R>
struct stride_iterator {
std::ranges::iterator_t<R> current_;
std::ranges::sentinel_t<R> end_;
std::ranges::range_difference_t<R> stride_;
// Pre-increment: ++it
stride_iterator& operator++() {
// 🔴 Критический момент: проверяем, не за пределами ли мы
for (int i = 0; i < stride_ && current_ != end_; ++i) {
++current_;
}
return *this;
}
// Post-increment: it++
stride_iterator operator++(int) {
auto tmp = *this;
++(*this);
return tmp;
}
auto operator*() const {
return *current_;
}
// Сравнение с концом диапазона через sentinel
bool operator==(const stride_sentinel<R>&) const {
return current_ == end_;
}
};
begin() и end() могут быть разных типов в C++20 ranges. Это позволяет избежать ошибки типов при сравнении.std::vector v = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
auto strided = stride_view(v, 2);
for (auto x : strided) {
std::cout << x << " "; // 0 2 4 6 8
}for (auto x : v | std::views::stride(2)) {
std::cout << x << " "; // 0 2 4 6 8
}🫰 std::views::stride уже входит в стандартную библиотеку! Пример выше — исключительно учебный📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1👾1
👨💻Большинство разработчиков используют готовые средства для создания интерфейсов и редко задумываются, что происходит под капотом. Но именно понимание внутренних механизмов помогает создавать более гибкие, быстрые и управляемые приложения.
📆14 июля в 20:00 МСК приглашаем на открытый урок, где разберём, как создавать собственные элементы управления без сложных надстроек и лишних зависимостей.
Вы узнаете, как обрабатывать действия пользователя, выводить графику на экран, создавать кнопки, текстовые поля и другие элементы интерфейса, а также организовывать их взаимодействие внутри приложения. Все подходы будут рассмотрены на практических примерах.
🏁Открытый урок проходит в преддверии старта курса «C++-разработчик. Продвинутый уровень». Зарегистрируйтесь, чтобы глубже понять устройство интерфейсов, задать вопросы эксперту и оценить возможности дальнейшего развития в C++: https://clc.to/pEWryQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
📆14 июля в 20:00 МСК приглашаем на открытый урок, где разберём, как создавать собственные элементы управления без сложных надстроек и лишних зависимостей.
Вы узнаете, как обрабатывать действия пользователя, выводить графику на экран, создавать кнопки, текстовые поля и другие элементы интерфейса, а также организовывать их взаимодействие внутри приложения. Все подходы будут рассмотрены на практических примерах.
🏁Открытый урок проходит в преддверии старта курса «C++-разработчик. Продвинутый уровень». Зарегистрируйтесь, чтобы глубже понять устройство интерфейсов, задать вопросы эксперту и оценить возможности дальнейшего развития в C++: https://clc.to/pEWryQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
😁2
🐸 Подборка вакансий для C++-разработчиков за неделю
Инженер-программист С++ — Офис (Воронеж)
C++ Developer (Gamedev, MMORPG) — Удалёнка/Гибрид (Калининград)
Программист С/Linux — Удалёнка
Разработчик С/С++ Control Plane — от 250 000 ₽ Удалёнка
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#вакансии
Инженер-программист С++ — Офис (Воронеж)
C++ Developer (Gamedev, MMORPG) — Удалёнка/Гибрид (Калининград)
Программист С/Linux — Удалёнка
Разработчик С/С++ Control Plane — от 250 000 ₽ Удалёнка
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#вакансии
Коллега написал таймаут для сетевого запроса и клянётся, что «иногда он срабатывает мгновенно, а иногда висит вечно». Особенно после перевода часов. Найдёшь причину?
#include <chrono>
using namespace std::chrono;
bool wait_for_response(Connection& conn, int timeout_ms) {
auto deadline = system_clock::now() + milliseconds(timeout_ms);
while (system_clock::now() < deadline) {
if (conn.has_data()) return true;
std::this_thread::sleep_for(milliseconds(10));
}
return false;
}
Задача: объясни, почему таймаут ведёт себя непредсказуемо, и перепиши функцию так, чтобы она работала корректно всегда.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1
Media is too big
VIEW IN TELEGRAM
🔥 Не называйте любого продвинутого чат-бота «ИИ-агентом»!
Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru, наглядно разбирает уровни абстракции ИИ-продуктов и убирает путаницу в понятиях.
Что внутри видео:
- Почему ассистент и агент принципиально разные сущности;
- Как ассистент может быть просто «обёрткой» над LLM, а может скрывать под капотом сложнейшую мультиагентную систему;
- Как понимать архитектуру глубже, чтобы проектировать сильные решения.
Начните создавать агентные системы с нашего бесплатного демо-урока. Всего за 2 часа разберем внутреннее устройство агента, научим его чинить свой собственный код и сохранять контекст после перезапуска.
🔗 Забрать бесплатный демо-урок
Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru, наглядно разбирает уровни абстракции ИИ-продуктов и убирает путаницу в понятиях.
Что внутри видео:
- Почему ассистент и агент принципиально разные сущности;
- Как ассистент может быть просто «обёрткой» над LLM, а может скрывать под капотом сложнейшую мультиагентную систему;
- Как понимать архитектуру глубже, чтобы проектировать сильные решения.
Начните создавать агентные системы с нашего бесплатного демо-урока. Всего за 2 часа разберем внутреннее устройство агента, научим его чинить свой собственный код и сохранять контекст после перезапуска.
🔗 Забрать бесплатный демо-урок