All streams
Search
Write a publication
Pull to refresh
15
10
Иван @proDream

Автор «Код на салфетке», фрилансер и питонист

Send message

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

Level of difficultyEasy
Reading time8 min
Views3K

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

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

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

Читать далее

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

Reading time6 min
Views451

Всем привет!

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Views3.9K

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

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

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

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

Читать далее

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

Reading time4 min
Views5.7K

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

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

Читать далее

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

Level of difficultyEasy
Reading time6 min
Views4.4K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time15 min
Views4.9K

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

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

Читать далее

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

Level of difficultyEasy
Reading time24 min
Views25K

Всем привет!

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

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

Читать далее

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

Reading time2 min
Views5.3K

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

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

Читать далее

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

Level of difficultyEasy
Reading time6 min
Views7.1K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time16 min
Views5.2K

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

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

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

Читать далее

Собственный почтовый сервер на базе poste.io

Level of difficultyEasy
Reading time11 min
Views11K

Приветствую.

Цифровая независимость — это не только вектор, по которому двигается страна, но и тенденция, которую я замечаю среди малых бизнесов независимо от направления деятельности. Крупный бизнес может позволить себе использовать облака условного «Сбера» или «Яндекса», что малому бизнесу может быть не по карману. Тогда они задумываются: «Может, дешевле выйдет собрать свою серверную инфраструктуру?»

Именно с таким вопросом в начале года к нам пришла одна небольшая Московская компания. Одним из элементов инфраструктуры было поднятие собственного почтового сервера на базе Mailcow.

Почему для малого бизнеса удобен свой почтовый сервер:

Читать далее

[НЕ]Вайбкодим анализатор страниц на FastAPI

Level of difficultyEasy
Reading time16 min
Views1.8K

Приветствую!

В нашем чате "Кот на салфетке" (кстати, заходите — у нас весело) регулярно всплывают бугурты об использовании различных ИИ-агентов (Copilot, Cursor) для написания кода. Главными инициаторами сего действа выступают Сергей и Кавай (расскажите маме, что вы в "тиливизаре").

Они оба проповедуют диаметрально противоположные позиции:

Читать далее

Команда игнорировала линтеры и я написал свой нотификатор

Reading time6 min
Views1.7K

Привет! Меня зовут Иван, и я автор проекта «Код на салфетке» — небольшой команды, в которой мы совмещаем написание обучающих статей, коммерческую разработку и open source.

Сегодня расскажу об одном из наших инструментов, который родился из боли всей команды: как мгновенно узнавать о проблемах в CI/CD, не заглядывая в почту и не обновляя вкладку репозитория.

Читать далее

Telegram Bot API 9.0: Крупнейшее обновление 2025 года

Reading time5 min
Views21K

Telegram продолжает расширять возможности для разработчиков, представив Bot API 9.0 — крупнейшее обновление 2025 года (пока что! 😈). Этот релиз открывает новые горизонты для бизнес-аккаунтов, усиливает инструменты монетизации и даёт ботам невиданную ранее гибкость. От кастомизации профилей до интерактивных историй и управления виртуальными подарками — Bot API 9.0 превращает Telegram в мощную платформу для цифрового бизнеса и креативного взаимодействия с аудиторией.

Читать далее

Taigram: универсальная клавиатура и исключения

Reading time17 min
Views1.2K

Продолжаем рассказывать о разработке нашего Open Source проекта Taigram.

Taigram - это Open Source Self-Hosted решение по отправке уведомлений о событиях из менеджера управления проектами Taiga в Telegram.

Читать далее

Taigram: как мы решали проблемы данных и пришли к бете

Reading time15 min
Views1.9K

Продолжаем рассказывать о разработке нашего Open Source проекта Taigram.

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

Также затронем тему бета-тестирования и расскажем, как вы можете помочь нам сделать Taigram лучше.

Читать далее

CI/CD: основы написания Workflow

Level of difficultyEasy
Reading time16 min
Views13K

Сначала я думал, что CI/CD – нечто сложное и чуждое разработчику, но понял, что ни один проект – будь то фриланс, Open Source или пет-проект – не может обойтись без этой практики, которая значительно повышает эффективность работы.

Статьи по теме:

Читать далее

Taigram: Начало работы

Reading time8 min
Views12K

Всем привет!

На этой неделе мы объявили о начале работы над Open Source проектом Taigram, название которому, к слову, выбрали вы в опросе.

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

Проектом занимаемся мы вдвоём: Иван и Виктор, а также с логотипом нам помог наш бессменный дизайнер Евгений. (Больше никто не захотел к нам присоединиться 😭)

Начнём мы, как водится, с самого начала...

Читать далее

Тестовые задания: Ваш код ушел в прод. Ваша зарплата — нет

Reading time10 min
Views21K

Приветствую! Меня зовут Иван, я автор Telegram-канала и сайта «Код на салфетке».

Уверен, что большинству из вас знакомо явление «Тестовое Задание» — не на этапе приёма на работу, а гораздо раньше: при отправке отклика, ещё до собеседования с HR.

«Ёжики колются, но продолжают есть кактус» — именно так выглядит наше отношение к тестовым заданиям. Многие ругаются, плюются, но всё равно тратят часы (а то и дни) на их выполнение в надежде получить заветный «допуск»: к техническому собеседованию, а то и сразу к офферу.

Что не так с этой практикой? У меня есть чёткое мнение на этот счёт, и сегодня я готов его аргументировать.

Важно! Всё описанное в статье СУГУБО МОЁ ЛИЧНОЕ МНЕНИЕ!. Это не призыв к действию, а повод задуматься о происходящем на рынке труда. Вы можете не согласиться со мной — полностью или частично! И даже лучше, если после прочтения вы поделитесь своей точкой зрения в комментариях. Как гласит народная мудрость: «В споре рождается истина».

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

Information

Rating
626-th
Location
Россия
Date of birth
Registered
Activity