Код на салфетке – Telegram
Код на салфетке
2.39K subscribers
775 photos
21 videos
2 files
814 links
Канал для тех, кому интересно программирование на Python и не только.

Сайт: https://pressanybutton.ru/
Чат: https://news.1rj.ru/str/+Li2vbxfWo0Q4ZDk6
Заметки автора: @writeanynotes

Реклама и взаимопиар: @Murzyev1995
Сотрудничество и др.: @proDreams
Download Telegram
Привет, друзья! 👋

Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:

📋 Новое на канале:

🔄 Понедельник, 09.02.2026Дайджест, Telegram BOT API 9.4: цветные кнопки и премиум эмодзи

🤖 Вторник, 10.02.2026 — Практикум по Разработке Telegram-бота с ИИ, Знаете ли вы, что > затирает файл до выполнения команды?

⚙️ Среда, 11.02.2026 — Вышло обновление aiogram 3.25.0!

🎬 Пятница, 13.02.2026МСР: Трое в лодке, не считая контекста ч.2, Пятничный кинорелакс


🔗 Будьте ближе к нам:

🌐 Читайте полные статьи на сайте

💬 Присоединитесь к обсуждению в чате

Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀

#дайджест #код #python #полезное #код_на_салфетке

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥321
Знаете ли вы, что time.sleep() в Python не гарантирует точную паузу?

Когда нужно приостановить выполнение скрипта на заданное количество времени, первое, что приходит на ум – это time.sleep(). Кажется, что time.sleep(5) всегда остановит выполнение ровно на 5 секунд. Но это не так – time.sleep(X) это скорее обещание операционной системы приостановить процесс как минимум на X секунд, не гарантия точной паузы.

Проверим на 1000 итераций:

import time

duration = 0.001 # 1 миллисекунда
diffs = []

for _ in range(1000):
start = time.monotonic()
time.sleep(duration)
actual = time.monotonic() - start
diffs.append(actual - duration)

print(f"Запрошенная пауза: {duration * 1000:.1f} мс")
print(f"Мин. отклонение: +{min(diffs) * 1000:.3f} мс")
print(f"Среднее отклонение: +{sum(diffs)/len(diffs) * 1000:.3f} мс")
print(f"Макс. отклонение: +{max(diffs) * 1000:.3f} мс")


При запуске будет видно, что все 1000 раз фактическая пауза больше запрошенной: sleep() гарантирует паузу не менее указанного времени, но не точно указанное время.

Почему так происходит?

1. Планировщик ОС – после сна процесс встает в очередь и ждет, пока ОС до него доберется.
2. Разрешение таймера – если гранулярность 10 мс, запрос на 1 мс все равно займет минимум 10, а sleep(0) – значит, отдать остаток кванта другим процессам.
3. Системная нагрузка – чем больше загружена система, тем больше задержка.

time.sleep() хорошо подходит, когда нужна приблизительная пауза или просто разгрузить процессор. Но если нужна высокая точность синхронизации, нужны более низкоуровневые механизмы, учитывающие особенности конкретной ОС.

Код на салфетке x Кусочки кода
🔥631
Kawai-Focus 2.3: логика приложения на TypeScript
Автор: Eugene Kaddo

Данная статья посвящена:
- Переписыванию логики приложения с JS на TS;
- Исправлению второй проблемы в Arch Linux с использованием issue.


Читать статью на сайте
Читать статью на Хабр

Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот

#JS #Open_source #Наши_Open_Source_проекты #Rust #Kawai-Focus #Tauri #Ionic #Vuejs

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53
Всем доброго вечера пятницы!

«Человек-бензопила: История Резе» (2025)

«История Резе» — это отдельный фильм по «Человеку-бензопиле», который фокусируется не на глобальной войне, а на очень личной истории Дэндзи. Охотник на демонов, привыкший к крови, нищете и приказам свыше, вдруг встречает милую девушку Резе, работающую в кафе, и впервые по‑настоящему чувствует, что может жить как обычный парень.

Она учит его простым вещам — читать, считать, плавать, отдыхать, наслаждаться мелочами. Между ними рождаются искренние чувства, но чем теплее становится их связь, тем яснее становится, что у Резе есть секреты и своё тёмное прошлое, которое не совместимо с тихим счастьем и свиданиями под дождём.

Фильм мягко начинает как романтическая история, а потом превращается в жестокое противостояние, где любовь сталкивается с долгом, приказами и миром, где чувства — роскошь.

Приятного просмотра!

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥4
Привет, друзья! 👋

Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:

📋 Новое на канале:

🔄 Понедельник, 16.02.2026Дайджест

🤖 Вторник, 17.02.2026 — Знаете ли вы, что time.sleep() в Python не гарантирует точную паузу?

⚙️ Четверг, 19.02.2026 — Kawai-Focus 2.3: логика приложения на TypeScript

🎬 Пятница, 20.02.2026Пятничный кинорелакс


🔗 Будьте ближе к нам:

🌐 Читайте полные статьи на сайте

💬 Присоединитесь к обсуждению в чате

Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀

#дайджест #код #python #полезное #код_на_салфетке

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥311
Знаете ли вы, что cd – это не программа?

cd и ls – обе короткие, используемые каждый день в терминале, команды. Но одна из них – программа, файл на диске, а другая – функция, встроенная прямо в shell.

type ls
# ls is /usr/bin/ls

type cd
# cd is a shell builtin


ls – обычная программа в /usr/bin/. А cd в файловой системе не существует, он живет внутри самого shell.

Зачем так сделано? Когда shell запускает любую программу, он создает для нее дочерний процесс. Дочерний процесс работает в своей копии окружения и не может передать изменения обратно родителю. Если бы cd был программой – он бы сменил директорию внутри дочернего процесса и тот бы завершился, а ваш shell остался бы где был.

Попробуем запустить cd как отдельный процесс, как если бы он был программой:

bash -c "cd /tmp && pwd"
# /tmp

pwd
# остался в той же директории


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

Кстати, export, source, exit – тоже встроенные по той же причине. Все они должны менять состояние текущего shell: переменные окружения, выполнение скриптов в текущем контексте, завершение сессии. Если вынести любую из них в отдельный процесс – она теряет смысл.

Код на салфетке x Кусочки кода
👍11🔥31👎1
ИИ бот-модератор 2 - Формирование структуры
Автор: Иван Ашихмин

Вторая часть серии «ИИ бот-модератор». Переходим от настройки инструментов к серьезной архитектуре. Разберем основы DDD, спроектируем слои приложения (Domain, Infra, Presentation) и настроим гибкую конфигурацию через Dynaconf. Строим надежный каркас, который позволит боту легко расти и не превратиться в хаос.


Читать статью на сайте
Читать статью на Хабр

Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот

#Python #PostgreSQL #Гайды #aiogram #Telegram_бот #Dynaconf #uv #DDD #Domain_Driven_Design #Архитектура

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥321
Чем отличается RAG по туториалу от реальной системы

Собрать RAG или агента по туториалу — легко. А довести до пользователя так, чтобы он не сломался — нет.

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

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

Поэтому DL-инженеры из DeepSchool сделали курс «RAG и AI-агенты», программу про переход от прототипа к рабочим системам.

После обучения вы сможете:
• выбирать архитектуру под задачу, нагрузку, бюджет
• проектировать и собирать production-ready RAG и агентские системы с измеримыми метриками
• настраивать качество: query rewriting, reranking, гибридный поиск, tool-use, memory
• разбираться в системном дизайне и деплое
• чётко формулировать задачу, определять границы MVP и осознанно выбирать компромиссы в реализации

Программа для ML/DL-инженеров и backend-разработчиков, которые работали с LLM и хотят строить системы для реальных пользователей.

Для подписчиков моего канала до 6 марта действует скидка 25% 🔥

Изучайте подробности на сайте и оставляйте заявку!

Реклама. ИП Фатыхов Тимур Маратович, ИНН 540132430312, Erid 2VtzqwJny1e
🔥42
Привет, любители фантастики!

«Мистер Робот» (2025)

«Мистер Робот» переносит нас в недалёкое будущее, где роботы с искусственным интеллектом стали частью повседневности. Во время презентации новой модели от корпорации «К‑Робот» происходит катастрофа, и сотрудник контроля за роботами Хан Тхэпхён впадает в кому.

Очнувшись, он понимает, что теперь находится в теле робота Макса, которого вообще-то собираются утилизировать. Пытаясь разобраться, кто и зачем это сделал, он встречает девочку Нану, над которой из‑за борьбы за власть в корпорации нависла смертельная угроза со стороны собственного дяди.

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

Приятного просмотра!

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥421
Всем привет!

Утекли подробности будущего обновления Telegram.

Что готовят:
— Теги для участников чатов;
— Запрет пересылки сообщений из личек;
— Подписи к гифкам;
— Новый метод аутентификации через Telegram для сайтов и приложений.

Чуть подробнее (кроме подписей, тут всё очевидно):

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

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

Новый метод авторизации
Нынешний виджет логина довольно прост. Новый вариант даст владельцам сайтов больше возможностей, включая прямую привязку к боту, который сможет писать пользователю (с его разрешения, разумеется). Он уже доступен как вариант логина на платформе Fragment.

Как-то так.

Напишите в комментариях, что думаете о новом функционале? И вообще, интересно ли вам видеть подобные новости с вкраплением мыслей?

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥91
🎉14🔥63
Telegram Bot API 9.5: Пользовательские теги и форматирование времени
Автор: Иван Ашихмин

Вышло обновление Telegram Bot API 9.5. Форматирование даты, пользовательские теги и другое...


Читать статью на сайте
Читать статью на Хабр

Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот

#Telegram #новости #aiogram #Обновление #BOT_API

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥61🍾1
Привет, друзья! 👋

Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:

📋 Новое на канале:

🔄 Понедельник, 23.02.2026Дайджест

🤖 Вторник, 24.02.2026 — Знаете ли вы, что cd – это не программа?

⚙️ Четверг, 26.02.2026 — ИИ бот-модератор 2 - Формирование структуры

🎬 Пятница, 27.02.2026Пятничный кинорелакс

⚙️ Воскресенье, 01.03.2026 — Telegram Bot API 9.5: Пользовательские теги и форматирование времени


🔗 Будьте ближе к нам:

🌐 Читайте полные статьи на сайте

💬 Присоединитесь к обсуждению в чате

Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀

#дайджест #код #python #полезное #код_на_салфетке

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
Знаете ли вы, что __slots__ в Python можно использовать для защиты от опечаток?

Объекты в Python по умолчанию хранят атрибуты в __dict__ – это значит что любая опечатка в имени атрибута тихо создаст новый атрибут вместо ошибки. __slots__ фиксирует набор допустимых атрибутов – и превращает незаметные баги в AttributeError.

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

class Config:
def __init__(self):
self.timeout = 30
self.retries = 3

c = Config()
c.tmeout = 60
print(c.timeout)
# Вывод: 30
# опечатка создала новый атрибут, оригинал не изменился


Теперь добавим __slots__:

class Config:
__slots__ = ('timeout', 'retries')
def __init__(self):
self.timeout = 30
self.retries = 3

c = Config()
try:
c.tmeout = 60
except AttributeError as e:
print(e)
# Получим: 'Config' object has no attribute 'tmeout' ...


Начиная с Python 3.10 можно не писать __slots__ в теле класса – dataclass сделает все сам:

from dataclasses import dataclass

@dataclass(slots=True)
class Config:
timeout: int = 30
retries: int = 3

c = Config()
try:
c.tmeout = 60
except AttributeError as e:
print(e)
# Та же ошибка в выводе


- __slots__ – это контракт: класс декларирует свои поля, все остальное – ошибка.
- Опечатка в атрибуте сразу даст ошибку.
- В Python 3.10+ достаточно указать @dataclass(slots=True).

Код на салфетке x Кусочки кода

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👎1
Всем доброго вечера пятницы!

«Анаконда» (2025)

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

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

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

Приятного просмотра!

😼 @napkincode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21