Обновить
1024K+

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

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

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

Как мы автоматизировали маркетинг, продажи и контроль стеком ИИ-агентов

Время на прочтение10 мин
Охват и читатели478

В нашей компании нет отдела маркетинга. Нет руководителя продаж. Нет SMM-щика, копирайтера, аналитика и таргетолога. Есть один CEO и стек из 12 ИИ-агентов, которые ведут восемь каналов коммуникации, контролируют менеджеров по продажам, мониторят расходы на рекламу 24/7, пишут персональные письма клиентам с цитатами из их звонков, и каждое утро в 6:00 МСК сами обучаются на ночной переписке команды.

Читать далее

Новости

Как я завалил кучу собесов по Go и что из этого вынес

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

Привет! Меня зовут Александр. Некоторые могут помнить мои статьи про финансовую аналитику на Python - анализ ETF, оптимизацию портфелей. Но последние 6 лет я Senior Go Backend Engineer, специализируюсь на финтехе и трейдинге.

Эта комбинация - domain expertise в финансах + техническая экспертиза в Go - оказалась очень ценной. Но путь был тернистым.

Последние полгода активно собеседовался: 8 интервью в разных компаниях - от крупных российских IT-гигантов до международных финтех стартапов. Где-то взяли, где-то нет. Решил поделиться самыми дурацкими ошибками, которые делал я и другие кандидаты. Может, кому поможет не наступить на те же грабли.

Читать далее

Как дать AI-агенту не лом, а ключ от браузера: разбираем agent-browser от Vercel

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

Если вы в последнее время пытались прикрутить к своему любимому LLM-агенту возможность самостоятельно гулять по интернету, дебажить веб-приложения, и даже верстать, вы наверняка столкнулись с суровой реальностью. Оказывается, засунуть современный веб в контекстное окно нейросети — очень "дорогая" задача.

Обычно в таких случаях не глядя берут проверенные инструменты вроде Puppeteer или Playwright, которые обернуты в те самые три буквы MCP. Но ребята из Vercel недавно выкатили свою альтернативу — agent-browser (cli-утилиту, написанную на связке Rust и, некогда Node, но об этом позже). Зачем понадобился еще один велосипед для автоматизации, если у нас уже есть стандарты индустрии? Давайте разбираться.

Читать далее

WebAssembly как платформа расширений для Python: ускорение, встраивание и опасные ловушки API

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

WebAssembly можно использовать как способ расширять Python без нативной сборки под каждую платформу: упаковать Wasm-модуль внутрь библиотеки, запускать его через wasmtime-py и ускорять участки, где чистый Python уже не справляется. Но за удобной схемой быстро проявляются неочевидные детали: store, линейная память, знаковые указатели, ручное копирование данных и риск записать их совсем не туда.

В статье разберёмся, где Wasm действительно полезен для Python и почему работа с таким API требует особой аккуратности.

Читать разбор

Прощайте, утилитки! ну и свечной заводик на старость…

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

Я мечтал написать полезную утилиту. Нет, ПОЛЕЗНУЮ УТИЛИТУ. Чтобы скачивали, платили, ну или в крайнем случае внизу страницы был бы батон Donate $20. А я, раскачиваясь в кресле качалке и потягивая винцо, иногда бы брал телефон посмотреть на счет - сколько там сегодня перевели? Иногда подходил бы к компьютеру, чтобы шлифануть пару раз идеальное творение или добавить крутую фичу.

Какая мечта! Тем более, что примеры всегда были под рукой. WinRAR, или почти ничего не требующий для поддержки сайтик ConnectionStrings.com - Forgot that connection string? Get it here!

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

Пришла жена с тысячей файлов на флешке и просьбой переименовать их хитрым образом. Ей на ее работе показали Multi Rename tool и конечно она попросила меня разобраться в хитром интерфейсе:

Читать далее

Логи, которые реально помогают: как дебажить продакшен-бота

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

Знакомая ситуация: бот вроде бы работает. Люди тыкают кнопки, получают ответы, всё хорошо. Но иногда случается странное.

Прилетает сообщение в поддержку: «Бот не отвечает». Или ещё хуже: «Бот выдал какую‑то ошибку и всё». Вы бежите к терминалу, поднимаете историю... и ничего не видите. Ни ошибки, ни стека, ни даже намёка на то, где именно всё сломалось.

Вы просто слепы.

Без нормальных логов вы не понимаете ровно ничего: обработчик не сработал, API молчит, база данных упала или вы просто забыли зарегистрировать хендлер. Спойлер: я через это проходил, и не раз.

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

Пишем свой SQL query builder на Python: DSL, кеширование в Redis и защита от инъекций

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

Объектный построитель SQL-запросов без ORM и моделей. Позволяет писать сложные SQL-запросы в виде цепочек Python-методов (table[‘person’].filter(…).join(…).get()) и получать результат в виде списка словарей. Под капотом — параметризованные запросы для защиты от инъекций, продуманная система кеширования с инвалидацией по таблицам (in-memory и Redis), поддержка синхронного и асинхронного кода из коробки. Для тех случаев, когда ORM избыточна, а сырой SQL небезопасен.

Читать далее

Как мы набираем джунов из Практикума: опыт компании ProninTeam

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

Хабр, привет! Меня зовут Андрей Пронин, я руководитель «бирюзовой» студии заказной разработки ProninTeam и наставник на курсе по управлению командой разработки в Яндекс Практикуме.

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

Читать далее

Zed 1.0: эпоха Electron-редакторов — всё

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

Вчера вышел Zed 1.0. Пять лет работы, миллион с лишним строк на Rust, публичная превьюшка, которой ежедневно пользовались сотни тысяч разработчиков, и вот команда Zed Industries во главе с Натаном Собо запостила релиз 29 апреля 2026 года. Я лет пятнадцать живу в IDE от JetBrains. Пробовал VS Code. Пробовал Cursor. Гонял code-server на удалённой виртуалке. Ничего не приживалось. Zed прижился, и релиз 1.0 — нормальный повод объяснить, почему.

Если коротко: больше десяти лет любой «новый» редактор кода — это всё тот же продукт в новой обёртке. Обёртка зависит от того, что продают сегодня: AI, коллаборация, темы, новый вендор. А под обёрткой Electron. Тот же Chromium на каждое окно, тот же JavaScript на критическом пути исполнения, тот же RSS, к обеду уходящий в гигабайты. Sublime Text держал планку нативных редакторов все 2010-е, но это был закрытый продукт одного автора, без нормальной коллаборации и без AI истории. Zed стал первым за последние десять лет убедительным опенсорс-редактором с GPU-ускорением и AI на борту, который пересобрали с нуля и без всякого браузера под капотом. С релизом 1.0 эта ставка наконец сыграла.

Читать далее

Тюнинг Cursor: как я укротил AI-ассистента и радикально снизил счета за токены с помощью MCP-серверов

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

Cursor или его аналоги, здорово облегчают написание кода, когда речь идет о каких‑то не очень больших проектах. Но стоит попробовать применить их к серьезному, сложному проекту, состоящему из нескольких репозиториев, и тут же сталкиваешься с тем, что эти «чудеса» оборачиваются просто огромными счетами за токены. Я в этой статье поделюсь, как мне удалось перестать впустую сжигать миллионы токенов. Для этого пришлось собрать и запустить три MCP‑сервера по протоколу Model Context Protocol, что позволило сэкономить до 90% бюджета, при этом совершенно не потеряв в эффективности модели при работе с кодом.

Читать далее

Часть I. Конечные автоматы. Универсальная машина Тьюринга. Интерпретатор Brainfuck

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

▒▒▒▒▒▒▒▒▒█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
▒▒▒▒▒▒▒█░▒▒▒▒▒▒▒▓▒▒▓▒▒▒▒▒▒▒░█
▒▒▒▒▒▒▒█░▒▒▓▒▒▒▒▒▒▒▒▒▄▄▒▓▒▒░█░▄▄
▒▒▄▀▀▄▄█░▒▒▒▒▒▒▓▒▒▒▒█░░▀▄▄▄▄▄▀░░█
▒▒█░░░░█░▒▒▒▒▒▒▒▒▒▒▒█░░░░░░░░░░░█
▒▒▒▀▀▄▄█░▒▒▒▒▓▒▒▒▓▒█░░░█▒░░░░█▒░░█
▒▒▒▒▒▒▒█░▒▓▒▒▒▒▓▒▒▒█░░░░░░░▀░░░░░█
▒▒▒▒▒▄▄█░▒▒▒▓▒▒▒▒▒▒▒█░░█▄▄█▄▄█░░█
▒▒▒▒█░░░█▄▄▄▄▄▄▄▄▄▄█░█▄▄▄▄▄▄▄▄▄█
▒▒▒▒█▄▄█░░█▄▄█░░░░░░█▄▄█░░█▄▄█

Я практик и популяризатор языково-ориентированного программирования [1]. В нём задачи решают тройкой: доменная виртуальная машина VM, доменный язык программирования DSL и алгоритмы на нём.
В этом курсе удачными фрагментами разных заметок доступно объясним причины многообразия языков и преимущества их разработки. С теорией, историей и примерами.
Вся наша работа строится вокруг VM, DSL, EBNF, отношений и графов. Мы увидим, как эти объекты соединяют вместе, получая вычислители и программы.

Читать далее

Сейчас сделаю приложение и заработаю на нем. АХАХАХАХАХ, удачи

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

За полгода я сделал мобильное приложение, получил 2000 установок и… 8 платных подписок по $6. Причем одна из подписок — моя.

Читать далее

Scene not Graph

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

Scene not Graph. Место для запятой выбирайте сами.

Scene Graph как концепция появился в академической и промышленной среде, где компьютерная графика использовалась для CAD-систем, научной визуализации и инженерного проектирования, а потом уже пришел в игры. Задачи отрисовки мира и его объектов в CAD были совсем другие и нужно было описывать, например, сложные сборки из деталей, с шестерней в редукторе, редукторе в двигателе, двигателе в машине, и такая модель отражала физическую реальность, которая играм была нужна с приставкой "не". Причины, по которым Scene Graph пришел и остается в играх довольно банальные, этой концепции учат в университете, и многие кто пришел делать игры, естественно знакомились с ней раньше других. На курсе компьютерной графики ИТМО эту модель давали уже на втором месяце и объясняли её полгода, а остальные пять или шесть техник давали всего месяц и в конце года.

Но проблема была в том, что в CAD иерархия объектов это буквальное описание устройства изделия, и перенос этой модели в игры в целом и в игровую графику в частности был концептуальной ошибкой с самого начала. Поняли это достаточно поздно, чтобы эта модель успела поселиться в мозгах целого поколения, выпуск OpenGL в 1992 году с принципиально другой моделью (immediate mode) стал первым сигналом что играм надо двигаться в другую сторону, но инерция Scene Graph в движковой архитектуре сохраняется до сих пор.

Читать далее

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

Я просил Claude перестать мне льстить. 16 апреля получил. Беру свои слова назад

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

16 апреля Anthropic выкатила Claude Opus 4.7. На бенчмарках 12 побед из 14, цена та же. Через 24 часа Reddit называл его legendarily bad. И вот в чём фокус: месяц назад я сам ныл, что Claude слишком поддакивает. Anthropic исправила. Получилась спор-машина. Беру свои слова назад.

Читать далее

Спецификация, ворота, метрики: как SENAR закрывает вход и выход задачи

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

Четвёртая статья из шести про инженерный процесс для разработки с ИИ-агентами. Автор, Андрей Юмашев, много лет руководил разработкой и инфраструктурой, полтора года назад отдал весь код агентам. Первая статья про путь от первых проектов к стандарту SENAR. Вторая про то, чем агент отличается от программиста. Третья про новую роль человека и пять навыков нового рабочего режима. Эта четвёртая про внешний контур, в который эти навыки упакованы, чтобы перестать опираться на личную дисциплину.

Читать далее

Возвращение блудного программиста (ч.3)

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

Эта часть будет практической, если помните я решил углубиться в React и Flask. Поэтому при помощи ИИ начинаю. Нет, ИИ не будет делать за меня весь проект, он будет выполнять функцию наставника. Ну и иногда чернорабочего (как, например, собрать файл SQL для инициирования БД) для ускорения ручного труда.

Читать далее

10 актуальных RAG-подходов: какие реально полезны и когда их применять?

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

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

Читать далее

Пишем прототип ИИ-агента для EdTech-саппорта без векторных баз и фреймворков: чистый Python, Gemini и JSON

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

У любого EdTech продукта есть проблема поддержки студентов. Я и сам столкнулся с ней в мою бытность автором курсов на степик. Студенты сталкиваются с трудностями и пишут в чат / на форум в надежде, что им помогут (особенно, если они заплатили за обучение свои кровные).

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

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

Читать далее

Структуры данных на практике. Глава 14: Обработка строк и эффективность использования кэша

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

«В Computer Science есть только две сложные вещи: инвалидация кэша и придумывание названий», — Фил Карлтон

Разрыв в производительности

Наш парсер логов обрабатывал 800 тысяч строк в секунду. Нам требовалось 3 миллиона строк в секунду. От нужного нам показателя мы отставали в 3,75 раза.

Задача инструмента заключалась в парсинге строк логов в реальном времени, извлечении временных меток, уровней логов и сообщений из миллионов строк в секунду. Обработка миллиона строк логов в текущей реализации требовала 1,25 секунды — слишком долго для анализа в реальном времени.

Профилировщик показывал 85 миллионов промахов кэша. Для обработки строк это казалось слишком большим показателем.

В реализации использовались стандартные строковые функции C — простые, читаемые, но, очевидно, слишком медленные.

Я переписал этот код, добавив обработку строк с учётом кэша. Результаты были такими:

В 4,5 раза быстрее и в 7 раз меньше промахов кэша.

В этой главе мы поговорим о том, как эффективно использовать кэш при обработке строк.

Читать далее

MemHawk: часть 2. Real-time flamegraph в вашей Grafana

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

В прошлой статье я рассказал, как можно сделать профилировщик памяти ориентированный на многопоточные приложения, который в 16 раз быстрее heaptrack.

Сегодня рассмотрим как получилось совместить быстрый профайлинг с удобством визуализации в Grafana в реальном времени.

Ключевые особенности:
Flamegraph аллокаций и деаллокаций за интервал времени
График потребления памяти с детализацией до функции/строчки в коде(настраиваемо)
Flamegraph в момент пика памяти
Flamegraph суммарного числа аллокаций
Flamegraph суммарного объема аллокаций

Звучит интересно!