ИИ бот-модератор 1: Начало проекта
Автор: Иван Ашихмин
Это первая статья серии «ИИ бот-модератор», в которой мы закладываем фундамент будущего проекта. Разберём, почему структура и качество кода критичны для роста, познакомимся с базовыми инструментами (
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#Docker #PostgreSQL #Гайды #aiogram #Telegram_бот #fastapi #AI #ИИ #git #ry #uv #ruff #make #makefile #линтеры #pre_commit #MCP
Автор: Иван Ашихмин
Это первая статья серии «ИИ бот-модератор», в которой мы закладываем фундамент будущего проекта. Разберём, почему структура и качество кода критичны для роста, познакомимся с базовыми инструментами (
git, uv, pre-commit, make) и подготовим проект к дальнейшей разработке Telegram-бота с ИИ.Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#Docker #PostgreSQL #Гайды #aiogram #Telegram_бот #fastapi #AI #ИИ #git #ry #uv #ruff #make #makefile #линтеры #pre_commit #MCP
1🔥7⚡1
Добрый вечер, друзья!
"Школьный автобус" (2025)
Сегодня рассказываем о фильме, который основан на реальных и героических событиях. "Школьный автобус" – это история мужества и самопожертвования в самых экстремальных условиях.
Сюжет фильма разворачивается вокруг водителя Кевина Маккея и учительницы Мэри Людвиг, которые выводят из огня 22 школьника во время разрушительного лесного пожара в Калифорнии. Их решительность, смелость и сила духа буквально спасают жизни, несмотря на все опасности вокруг.
Этот фильм наполнен настоящей драмой и вдохновляющими эмоциями. Он напоминает нам о важности человеческой поддержки и готовности помочь в трудную минуту.
"Школьный автобус" (2025)
Сегодня рассказываем о фильме, который основан на реальных и героических событиях. "Школьный автобус" – это история мужества и самопожертвования в самых экстремальных условиях.
Сюжет фильма разворачивается вокруг водителя Кевина Маккея и учительницы Мэри Людвиг, которые выводят из огня 22 школьника во время разрушительного лесного пожара в Калифорнии. Их решительность, смелость и сила духа буквально спасают жизни, несмотря на все опасности вокруг.
Этот фильм наполнен настоящей драмой и вдохновляющими эмоциями. Он напоминает нам о важности человеческой поддержки и готовности помочь в трудную минуту.
🔥5
Новогодний розыгрыш от Код на салфетке, Bothost и сообщества!
Новый год уже не за горами, а это значит, что наступает пора дарить подарки! Мы тоже не остаёмся в стороне и приготовили для вас розыгрыш с 11-ю крутыми призами!
Что за призы?
- 2x Толстовка с большим принтом
- 2x Футболка с большим принтом
- 3x Футболка с маленьким принтом
- 3x Блокнот с принтом
- RGB светильник-ночник с логотипом
Кто помогает?
Розыгрыш был бы невозможен без наших друзей из хостинга Telegram-ботов Bothost, а также семи добрых подписчиков нашего чата "Кот на салфетке".
Как участвовать?
1️⃣ Подпишитесь на "Код на салфетке".
2️⃣ Подпишитесь на "Хостинг bothost.ru".
3️⃣ Нажмите кнопку «Участвую» 👇.
4️⃣ Ждите результатов — мы объявим победителей 10 января.
Важно:
— Призы будут изготовлены после завершения розыгрыша.
— Отправка призов — только по России.
Заходите, участвуйте и зовите друзей — пусть новый год начнётся с хорошего настроения и сюрприза под "ёлкой". Удачи!
Новый год уже не за горами, а это значит, что наступает пора дарить подарки! Мы тоже не остаёмся в стороне и приготовили для вас розыгрыш с 11-ю крутыми призами!
Что за призы?
- 2x Толстовка с большим принтом
- 2x Футболка с большим принтом
- 3x Футболка с маленьким принтом
- 3x Блокнот с принтом
- RGB светильник-ночник с логотипом
Кто помогает?
Розыгрыш был бы невозможен без наших друзей из хостинга Telegram-ботов Bothost, а также семи добрых подписчиков нашего чата "Кот на салфетке".
Как участвовать?
1️⃣ Подпишитесь на "Код на салфетке".
2️⃣ Подпишитесь на "Хостинг bothost.ru".
3️⃣ Нажмите кнопку «Участвую» 👇.
4️⃣ Ждите результатов — мы объявим победителей 10 января.
Важно:
— Призы будут изготовлены после завершения розыгрыша.
— Отправка призов — только по России.
Заходите, участвуйте и зовите друзей — пусть новый год начнётся с хорошего настроения и сюрприза под "ёлкой". Удачи!
1🔥19⚡12
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 15.12.2025 — Дайджест
🐍 Вторник, 16.12.2025 — Знаете ли вы, как вызвать функцию со 100 аргументами одной строкой?
⚙️ Четверг, 18.12.2025 — ИИ бот-модератор 1: Начало проекта
🎬 Пятница, 19.12.2025 — Пятничный кинорелакс
🍀 Суббота, 20.12.2025 — Новогодний розыгрыш от Код на салфетке, Bothost и сообщества!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 15.12.2025 — Дайджест
🐍 Вторник, 16.12.2025 — Знаете ли вы, как вызвать функцию со 100 аргументами одной строкой?
⚙️ Четверг, 18.12.2025 — ИИ бот-модератор 1: Начало проекта
🎬 Пятница, 19.12.2025 — Пятничный кинорелакс
🍀 Суббота, 20.12.2025 — Новогодний розыгрыш от Код на салфетке, Bothost и сообщества!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥4⚡1
Всем привет!
Пока у нас идёт новогодний розыгрыш, один из наших стажёров, Олег Семёнов, сделал небольшую новогоднюю страничку.
Без кнопок, без логики и без пользы — зато с атмосферой 🎄
Просто чтобы на пару секунд выдохнуть и словить настроение зимы и грядущего нового года.
👉 https://ny.pressanybutton.ru/
Ну и напомню: розыгрыш всё ещё в процессе, так что можно сначала поймать новогодний вайб, а потом пойти и поучаствовать 😉
Пока у нас идёт новогодний розыгрыш, один из наших стажёров, Олег Семёнов, сделал небольшую новогоднюю страничку.
Без кнопок, без логики и без пользы — зато с атмосферой 🎄
Просто чтобы на пару секунд выдохнуть и словить настроение зимы и грядущего нового года.
👉 https://ny.pressanybutton.ru/
Ну и напомню: розыгрыш всё ещё в процессе, так что можно сначала поймать новогодний вайб, а потом пойти и поучаствовать 😉
🔥6🎄4😁2🦄2☃1⚡1😱1
ty: революция в тайп-чекинге
Автор: Иван Ашихмин
Astral представили
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#новости #python #uv #ruff #mypy #ty #type_checking #astral
Автор: Иван Ашихмин
Astral представили
ty — новый тайп-чекер для Python, который обещает изменить привычный подход к типизации. В статье разбираемся, чем ty отличается от mypy и Pyright, почему он настолько быстрый, как устроен изнутри и стоит ли уже сейчас пробовать его в реальных проектах.Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#новости #python #uv #ruff #mypy #ty #type_checking #astral
🔥4❤1⚡1
Знаете ли вы, что при множественном наследовании метод вызывается не из того класса, откуда ожидается?
Создаете класс с несколькими родителями, вызываете метод, а Питон выбирает его из совершенно неочевидного места. Или пытаетесь понять порядок вызова
Классический пример ромбовидного наследования:
Питон идет слева направо: D -> B -> C -> A -> object. Поэтому вызывается
Теперь поменяем порядок родителей:
Порядок в скобках имеет значение – первый родитель имеет приоритет.
Особенно интересно с
Здесь
А вот случай когда Python откажется создавать класс:
Python не может построить MRO, где X идет до Y (требование
Чтобы посмотреть MRO любого класса используйте
Код на салфетке x Кусочки кода
Создаете класс с несколькими родителями, вызываете метод, а Питон выбирает его из совершенно неочевидного места. Или пытаетесь понять порядок вызова
super(), а он идет против всякой логики. Дело в Method Resolution Order (MRO) – алгоритме, который Python использует, чтобы решить, откуда брать методы при наследовании.Классический пример ромбовидного наследования:
class A:
def method(self):
print("A.method")
class B(A):
def method(self):
print("B.method")
class C(A):
def method(self):
print("C.method")
class D(B, C):
pass
d = D()
d.method() # B.method
print(D.__mro__)
# (<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>,
# <class '__main__.A'>, <class 'object'>)
Питон идет слева направо: D -> B -> C -> A -> object. Поэтому вызывается
B.method, хотя C тоже наследует от A.Теперь поменяем порядок родителей:
class D(C, B): # C теперь первый
pass
d = D()
d.method() # C.method – результат изменился
print(D.__mro__)
# (<class '__main__.D'>, <class '__main__.C'>, <class '__main__.B'>,
# <class '__main__.A'>, <class 'object'>)
Порядок в скобках имеет значение – первый родитель имеет приоритет.
Особенно интересно с
super():class A:
def method(self):
print("A")
class B(A):
def method(self):
print("B")
super().method()
class C(A):
def method(self):
print("C")
super().method()
class D(B, C):
def method(self):
print("D")
super().method()
d = D()
d.method()
# D
# B
# C
# A
Здесь
super() идет не к родителю, а к следующему в MRO: D -> B -> C -> A. Поэтому из B вызывается C, хотя C не родитель B.А вот случай когда Python откажется создавать класс:
class X: pass
class Y(X): pass
class Bad(X, Y): # TypeError: Cannot create a consistent method resolution
pass
Python не может построить MRO, где X идет до Y (требование
X, Y) и одновременно Y идет до X (требование наследования). Он использует алгоритм C3 linearization для построения MRO. Правила простые: класс всегда идет раньше своих родителей, порядок родителей из определения сохраняется, каждый класс появляется один раз. Если эти правила конфликтуют – получается TypeError.Чтобы посмотреть MRO любого класса используйте
.__mro__ или .mro().Код на салфетке x Кусочки кода
🔥7🤯5
GitLab: Основы написания Pipeline 1/3
Автор: Иван Ашихмин
Первая из трёх статья посвящённая разбору отличий GitLab CI от GitHub Action и основам написания Pipeline.
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#гайды #github #gitlab #pipeline #actions #ci_cd #stage #devops #runner #job
Автор: Иван Ашихмин
Первая из трёх статья посвящённая разбору отличий GitLab CI от GitHub Action и основам написания Pipeline.
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#гайды #github #gitlab #pipeline #actions #ci_cd #stage #devops #runner #job
🔥9❤2⚡2
Всем доброго вечера пятницы!
«Хроники хищных городов» (2018)
Это тот фильм, который цепляет уже одной идеей: мир будущего, где города стоят не на картах, а на гусеницах и охотятся друг на друга, как хищники. Огромный Лондон преследует и «поглощает» маленькие города ради ресурсов, а внутри этой железной махины кипят интриги, тайные планы и личные драмы.
В центре истории — молодой историк Том и таинственная девушка Эстер, которая появляется в Лондоне с очень личной целью — отомстить влиятельному человеку из верхушки города. Фильм сочетает в себе зрелищный стимпанк, приключения и драму о людях, которые пытаются не потерять себя в мире, где всё давно превратили в топливо.
Если нравится масштабное кино с оригинальным визуалом, гигантскими машинами и ноткой подросткового бунта против системы — «Хроники хищных городов» отлично зайдут. Это тот случай, когда мироустройство само по себе вызывает желание пересматривать детали, а за зрелищем скрываются темы власти, неравенства и борьбы за право жить по-своему.
«Хроники хищных городов» (2018)
Это тот фильм, который цепляет уже одной идеей: мир будущего, где города стоят не на картах, а на гусеницах и охотятся друг на друга, как хищники. Огромный Лондон преследует и «поглощает» маленькие города ради ресурсов, а внутри этой железной махины кипят интриги, тайные планы и личные драмы.
В центре истории — молодой историк Том и таинственная девушка Эстер, которая появляется в Лондоне с очень личной целью — отомстить влиятельному человеку из верхушки города. Фильм сочетает в себе зрелищный стимпанк, приключения и драму о людях, которые пытаются не потерять себя в мире, где всё давно превратили в топливо.
Если нравится масштабное кино с оригинальным визуалом, гигантскими машинами и ноткой подросткового бунта против системы — «Хроники хищных городов» отлично зайдут. Это тот случай, когда мироустройство само по себе вызывает желание пересматривать детали, а за зрелищем скрываются темы власти, неравенства и борьбы за право жить по-своему.
👍5🔥3❤1
Всем привет!
Розыгрышу уже неделя — за это время в нём приняли участие 110 человек. Спасибо каждому, кто подключился.
Пора подробнее рассказать о призах и о том, как они будут распределяться.
Что разыгрываем:
- 2x Толстовка с большим принтом
- 2x Футболка с большим принтом
- 3x Футболка с маленьким принтом
- 3x Блокнот с принтом
- RGB светильник-ночник с логотипом
Одежда будет изготавливаться после завершения конкурса — по размерам, которые укажут победители.
И небольшой спойлер 👀
Нам уже есть что показать: ниже — фото толстовки на нашем авторе, макет обложки блокнота и 11-й приз, который до этого момента оставался секретным.
Розыгрышу уже неделя — за это время в нём приняли участие 110 человек. Спасибо каждому, кто подключился.
Пора подробнее рассказать о призах и о том, как они будут распределяться.
Что разыгрываем:
- 2x Толстовка с большим принтом
- 2x Футболка с большим принтом
- 3x Футболка с маленьким принтом
- 3x Блокнот с принтом
- RGB светильник-ночник с логотипом
Одежда будет изготавливаться после завершения конкурса — по размерам, которые укажут победители.
И небольшой спойлер 👀
Нам уже есть что показать: ниже — фото толстовки на нашем авторе, макет обложки блокнота и 11-й приз, который до этого момента оставался секретным.
🔥14 3⚡1❤1👍1🦄1
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 22.12.2025 — Дайджест
🐍 Вторник, 23.12.2025 — 1. ty: революция в тайп-чекинге. 2. Знаете ли вы, что при множественном наследовании метод вызывается не из того класса, откуда ожидается?
⚙ Четверг, 25.12.2025 — GitLab: Основы написания Pipeline 1/3
🎬 Пятница, 26.12.2025 — Пятничный кинорелакс
🎰 Суббота, 27.12.2025 — Розыгрышу уже неделя!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 22.12.2025 — Дайджест
🐍 Вторник, 23.12.2025 — 1. ty: революция в тайп-чекинге. 2. Знаете ли вы, что при множественном наследовании метод вызывается не из того класса, откуда ожидается?
⚙ Четверг, 25.12.2025 — GitLab: Основы написания Pipeline 1/3
🎬 Пятница, 26.12.2025 — Пятничный кинорелакс
🎰 Суббота, 27.12.2025 — Розыгрышу уже неделя!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥8❤1👍1
GitLab: Основы написания Pipeline 2/3
Автор: Иван Ашихмин
Вторая из трёх статья, посвящённая продолжению разбора конфигурирования файла
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#гайды #docker #github #gitlab #pipeline #ci_cd #stage #devops #job #ci #кэш #if #trigger #артефакты
Автор: Иван Ашихмин
Вторая из трёх статья, посвящённая продолжению разбора конфигурирования файла
.gitlab-ci.ymlЧитать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#гайды #docker #github #gitlab #pipeline #ci_cd #stage #devops #job #ci #кэш #if #trigger #артефакты
🔥5⚡1👌1
Всем привет!
С конца года многие подводят итоги — и мы решили не отставать.
Мы подготовили краткий обзор наших годовых цифр: чистые показатели по каналу и сайту за прошедшие 12 месяцев:
С конца года многие подводят итоги — и мы решили не отставать.
Мы подготовили краткий обзор наших годовых цифр: чистые показатели по каналу и сайту за прошедшие 12 месяцев:
🔥12❤4🦄4