Обновить
22
139.4
Иван@proDream

Автор Код на салфетке | Фрилансер | Преподаватель

Отправить сообщение

Гайд по первоначальной настройке VPS

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

Мне довольно часто приходится работать с только что созданными VPS — будь то развёртывание нового проекта, подготовка тестового окружения или эксперименты с инфраструктурой. Практически каждый такой сервер после создания находится в «сыром» состоянии и требует базовой первичной настройки.

Как правило, эта настройка включает:

Читать далее

Telegram Bot API 9.3: Революция в ИИ-чатах

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

Всем привет!

Прямо в канун Нового года — а именно 31 декабря — Telegram представил крупное обновление Bot API 9.3. И не просто представил, а громко заявил: «Революция ИИ в чатах».

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

Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и новостями. А прямо сейчас у нас там ещё и проходит новогодний розыгрыш.

Читать далее

GitLab: Основы написания Pipeline 2/3

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

Всем привет!

В первой части мы в общих чертах посмотрели на различия GitHub Actions и GitLab, а также начали разбирать структуру файла .gitlab-ci.yml.

В этой части продолжим разбираться с параметрами и особенностями конфигурации: триггеры, job’ы, артефакты и многое другое.

Не понимаете, «что тут происходит»? Рекомендую начать с первой части:: по ссылке.

Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и практическими примерами из реальных проектов. А прямо сейчас у нас там ещё и проходит новогодний розыгрыш.

Читать далее

GitLab: Основы написания Pipeline 1/3

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

Всем привет!

Так вышло, что в месте, где я преподаю и занимаюсь менторством стажёров, начался переход с GitHub-репозиториев на GitLab, развёрнутый на собственных серверах. Пока что перенесли не все проекты, но даже этого оказалось достаточно, чтобы у стажёров возникло немало вопросов — особенно в части настройки CI/CD-процессов.

Формально CI/CD в GitHub и GitLab решают одну и ту же задачу, но на практике подходы, терминология и детали конфигурации отличаются. Из-за этого попытки «сделать как в GitHub Actions» часто приводят к путанице и ошибкам.

У меня уже есть статья про CI/CD и workflow, но она целиком посвящена GitHub Actions. Чтобы сократить количество вопросов, разночтений и бессонных ночей у стажёров, я решил написать отдельную статью про CI/CD именно в GitLab — с учётом его особенностей и типичных подводных камней.

Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и практическими примерами из реальных проектов. А прямо сейчас у нас там ещё и проходит новогодний розыгрыш.

Читать далее

ty: революция в тайп-чекинге

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

Всем привет!

За последние пару лет компания Astral буквально разрывает Python-мир своими инструментами. Даже если вы не слышали это имя напрямую, с большой вероятностью вы уже пользовались их продуктами — ruff или uv.

И это не преувеличение. И ruff, и uv сегодня фактически стали стандартом индустрии. Например, в свежем релизе PyCharm 2025.3 при создании нового проекта по умолчанию инициализируется именно окружение uv, а не привычный venv. Для open source-проекта — это очень серьёзный показатель доверия со стороны экосистемы.

Открытый исходный код и массовое принятие инструментов Python-разработчиками дали Astral тот самый «кредит доверия», который компания, судя по всему, пока что уверенно оправдывает.

И вот буквально на днях Astral объявили, что их новый «революционный» тайп-чекер ty переходит в стадию бета-тестирования. А если учитывать, что и uv, и ruff формально тоже всё ещё находятся в бете, то можно считать, что ty уже фактически вышел в релиз. Собственно, о нём и поговорим дальше.

Если вам интересны подобные материалы — подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков и полезными инструментами. А прямо сейчас у нас ещё и проходит новогодний розыгрыш.

Читать далее

ИИ бот-модератор 1: Начало проекта

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

Знаете, в чём проблема большинства гайдов и курсов, которые обещают научить всему и сразу — да ещё и устроить на работу? Часто они учат примитиву, выдавая это за качественный контент. В итоге появляется много низкокачественного кода: на первый взгляд он работает, но в реальности трудно поддерживается.

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

Вы наверняка задаётесь вопросом: «Почему рубрика называется “ИИ бот-модератор”, а автор тут рассказывает про качество кода?» На самом деле, всё связано.

Telegram-бот для группы — отличный пример проекта, который очень быстро обрастает фичами: команды, настройки, роли, интеграции, хранение данных, логирование, админка, модерация, ИИ и т.д. Если делать всё “в одном файле”, это почти гарантированно закончится болью. Поэтому в этой рубрике мы будем строить бота так, чтобы его можно было развивать: добавлять функциональность без постоянного страха «сломать всё».

Читать далее

OpenAI Guardrails: защита ИИ-приложений от атак

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

Всем привет!

В этой статье разберёмся с OpenAI Guardrails — одним из самых эффективных инструментов для обеспечения безопасности ИИ-систем. Это продолжение цикла о защите и контроле ИИ-агентов, в первой части мы рассмотрели инструмент модерации запросов.

Guardrails предоставляет намного более мощные возможности для защиты, позволяя создавать многоуровневую систему валидации входных и выходных данных.

Читать далее

OpenAI ModerationAPI: примеры использования

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

Всем привет!

В последнее время всё чаще появляются новости о том, что искусственный интеллект (ИИ) удалось взломать или обойти его защитные механизмы. Это действительно актуальная проблема — особенно для тех, кто занимается разработкой ИИ‑агентов и интеграцией языковых моделей в продукты.

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

Недавно в нашем Telegram‑канале «Код на салфетке» мы опубликовали подробный разбор того, как можно попытаться обойти встроенные ограничения ИИ. Такие попытки обхода называют джейлбрейком (jailbreak). Это термин из сферы IT, который изначально использовался для обозначения взлома защитных механизмов мобильных устройств, а теперь применяется и к ИИ.

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

В этой статье мы сосредоточимся на одном из ключевых инструментов защиты — модерации контента. Разберём, как с помощью Moderation API автоматически фильтровать вредоносные или некорректные запросы, настроим пакетную проверку и логирование, а также рассмотрим практические примеры интеграции модерации в реальные сервисы.

Читать далее

Selectolax: быстрая альтернатива Beautiful Soup

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

Если спросить у питониста: «Чем парсить сайт?», — в большинстве случаев он ответит Selenium или Beautiful Soup. И будет по-своему прав — это два главных направления в мире парсинга на Python.

Selenium, со всем своим множеством форков, наследников и схожих по принципу библиотек, — инструмент мощный. Он отлично подходит для сложных сценариев, работы с динамическими сайтами и автоматизации действий пользователя в браузере. Но за это удобство приходится платить: Selenium требует немало системных ресурсов и работает заметно медленнее.

Beautiful Soup (или просто «суп») — полная противоположность. Он лёгкий, быстрый и прекрасно справляется с «простыми» сайтами, где нет интерактивных элементов и сложного JavaScript.

В этой статье я расскажу об альтернативе Beautiful Soup — библиотеке Selectolax, воплощающую в себе простоту использования и высокую скорость работы.

Читать далее

ReVu — Open Source AI-ревьюер для ваших Pull Request

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

Всем привет!

Недавно мы с приятелем обсуждали, как устроены рабочие процессы в бигтех-компаниях и какую роль в них уже играет ИИ. Речь в основном шла о зарубежных компаниях — у него там есть знакомые, которые делились опытом изнутри. Один из самых любопытных моментов — использование искусственного интеллекта для предварительного код-ревью в Pull Request: прежде чем коллеги возьмутся проверять изменения, PR уже анализирует ИИ и указывает на потенциальные проблемы.

Эта идея меня зацепила, и я решил изучить, какие готовые решения уже существуют (кроме встроенного в GitHub Copilot). Из более-менее крупных нашёл только PR Agent. Я протестировал его, но по ряду причин он мне не подошёл: хотелось больше гибкости, настройки под свои нужды и возможности запускать всё самостоятельно, без передачи кода сторонним сервисам.

Так родился проект ReVuself-hosted инструмент для автоматического код-ревью в Pull Request с помощью ИИ. Он универсален, легко кастомизируется и не требует доверять исходный код внешним платформам.

Если вам интересны подобные материалы и проекты, подписывайтесь на Telegram-канал «Код на салфетке» — там я делюсь гайдами для новичков, историями разработки и полезными инструментами.

Читать далее

Обзор WSGI, ASGI и RSGI: лидеры среди веб-серверов в 2025 году

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

Любому веб-приложению нужен веб-сервер для доступа извне. На самом деле, многие даже не уделяют выбору веб-сервера для своего приложения достаточного внимания: на Django берут "популярный" Gunicorn (а кто-то ещё и обвязывает его Uvicorn'ом), а для FastAPI Uvicorn практически стандарт. Тут "на сцену" выходит Granian, представляющий впечатляющие результаты производительности с простой настройкой.

В своём проекте "Код на салфетке" я использовал uWSGI, но недавно узнал про новый Granian и мне стало интересно на что он способен. Так появилась идея для этой статьи.

В этой статье узнаем:

Читать далее

Napkin Random Bot: как мы создали бота для честных розыгрышей

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

Всем привет!

Этим летом моему проекту «Код на салфетке» исполнилось два года. Отметить это событие я решил проведением розыгрыша среди подписчиков. Разыгрывались 10 книг по программированию, которые, надеюсь, оказались полезными победителям.

Но было бы скучно использовать готового Telegram-бота для этого (дело не только в скуке, но об этом дальше по тексту). Тогда я решил сделать своего бота для проведения розыгрышей — Napkin Random Bot.

О том, почему я решил его сделать и как всё прошло, расскажу в этой статье.

Если вам интересны подобные материалы, подписывайтесь на наш Telegram-канал «Код на салфетке» — будем рады новым подписчикам! Впереди ещё больше розыгрышей и активностей.

Читать далее

Uptime Kuma 2 установка и мониторинг сервисов без VPS

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

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

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

Один из удобных инструментов для этого — Uptime Kuma. Это относительно молодой (по сравнению с «тяжеловесами» вроде Zabbix) проект, который активно развивается, прост в установке и отлично подходит для новичков.

В этой статье мы разберёмся:

Читать далее

Telegram Bot API 9.2: прямые сообщения и рекомендуемые посты

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

15 августа 2025 года Telegram выпустил обновление Bot API 9.2. Если прошлые версии (9.0 и 9.1) в основном усиливали возможности ботов в работе с платным контентом, подарками и чек-листами, то 9.2 делает шаг в сторону более тесной интеграции ботов с каналами и их экосистемой.

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

Читать далее

Harbor: Docker Registry на своём сервере

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

В одной из предыдущих статей, а именно в «Применение Portainer в CI/CD процессах», мы разобрались, что такое сборка Docker-образов и какие существуют варианты их хранения. В том примере использовался GitHub Docker Registry, а в своей работе я применяю хранилище в собственном Git-хостинге на базе Gitea.

Альтернативой хранению образов рядом с кодом является самостоятельный (self-hosted) репозиторий образов, например Harbor.

В этой статье мы разберём, что такое Harbor, как установить его на свой сервер и как начать им пользоваться.

Читать далее

Применение Portainer в CI/CD процессах

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

Продолжаем знакомиться с Portainer и сферами его применения.

В этой статье узнаем как написать CI/CD для сборки Docker-образа и деплоя проекта, а также, как получить бесплатно Portainer BE.

Читать далее

Шпаргалка для новичков — от GIT до Деплоя

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

Всем привет!

Недавно я провел опрос среди подписчиков моего Telegram-канала "Код на салфетке", спросив их о возникающих проблемах и ошибках при деплое. Ответов накопилось немало, и большинство из них касались применения Docker. Однако были и комментарии о том, как организовать проект и репозиторий.

В этой статье мы обсудим ключевые моменты, которые помогут вам правильно организовать git-репозиторий, подготовить Docker-файлы, а также сделать процесс деплоя более гладким. Кроме того, мы подробно рассмотрим механику деплоя на двух примерах: деплой приложения на облачную платформу Dockhost и классический деплой на VPS с помощью Docker Compose.

Читать далее

Telegram Bot API 9.1 — чеклисты, подарки и другое

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

Telegram продолжает расширять возможности своего мессенджера — в свежем обновлении Bot API 9.1 разработчикам стали доступны удобные инструменты для работы с чек-листами, подарками и рядом других функций.

Рассмотрим их подробнее.

Читать далее

Один Portainer, чтоб править всеми

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

Нельзя просто так взять и управлять Docker’ами с разных VPS… или всё-таки можно?

В прошлой статье «Быстрый деплой бота (и не только) на Docker‑хостинге с Portainer» я рассказал о том, как легко развернуть приложение на DockerHosting.ru с предустановленным Portainer без необходимости подключаться к серверу по SSH. Но тот материал касался только управления контейнерами на одном сервере.

А что если у вас несколько VPS и вы хотите централизованно управлять всеми Docker-хостами из одного интерфейса? Portainer поддерживает добавление сторонних Docker‑движков, и это открывает широкие возможности для администрирования сразу нескольких серверов в единой панели.

Читать далее

Быстрый деплой бота (и не только) на Docker-хостинге с Portainer

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

18 июня будет два года как я создал сообщество "Код на салфетке". Сразу оговорюсь, что это некоммерческая история и возникло оно как решение важной для меня проблемы: "недостаток информации для начинающего разработчика". В процессе моего обучения и развития я сталкивался с различными нюансами, которые решались достаточно просто, но найти "комплексный ответ" зачастую было очень трудной задачей.

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

За эти два года мне в личку и в чат Telegram-канала довольно часто пишут новички и их вопросы можно разделить на две категории:

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

Информация

В рейтинге
44-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность