Ответьте на 5 вопросов, чтобы выбрать путь:
Выбор между облаком и Self-hosted - это выбор между скоростью внедрения/доступностью и глубиной контроля/соответствием жестким регуляторным требованиям (особенно 187-ФЗ КИИ). Не давайте LLM стать «протекающей абстракцией» для ваших критических данных.
Код на салфетке x Мозг в данных
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3⚡2❤1
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 24.11.2025 — Дайджест
🐍 Вторник, 25.11.2025 — Смотри, какой репозиторий!, Знаете ли вы, как ускорить вставку в отсортированный список?
🎬 Пятница, 28.11.2025 — Путь от стажёра до ментора, Пятничный кинорелакс
🤖 Воскресенье, 30.11.2025 — Self-hosted против Облака: Как не дать LLM слить ваши данные в 2025 году
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 24.11.2025 — Дайджест
🐍 Вторник, 25.11.2025 — Смотри, какой репозиторий!, Знаете ли вы, как ускорить вставку в отсортированный список?
🎬 Пятница, 28.11.2025 — Путь от стажёра до ментора, Пятничный кинорелакс
🤖 Воскресенье, 30.11.2025 — Self-hosted против Облака: Как не дать LLM слить ваши данные в 2025 году
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥4⚡2
Forwarded from GitVerse News
#GitVerseКейс
Смотри, какой репозиторий!🐶
Время дайджеста! Мы продолжаем изучать крутые проекты, которые нашли среди заявок грантовой программы, и вдохновлять ими. Сегодня снова принесли вам целых три. Давайте смотреть🚀
1️⃣ Kawai-Focus — приложение для фокусировки внимания на основе техники Pomodoro. Его миссия — сделать работу человека эффективной, предотвратить выгорание и вовремя предупреждать об опасном для здоровья уровне переработки.
Какие фишки?🖱
📌 Современный и аккуратный дизайн в стиле Material Design, который оживил внешний вид приложения на Kivy благодаря обновленному форку KivyMD 2.0.0.
📌 Настраиваемые цепочки таймеров, легко подстраиваемые под индивидуальные потребности пользователя — при этом встроенные ограничения не позволят вам переусердствовать и выгореть.
📌 Приложение работает локально на ПК. Сейчас ведется работа над сборкой пакета под Linux, а также изменение дизайна к Material Design виду.
⛓️💥 Ссылка на репозиторий
2️⃣ Mlut — инструмент для верстки в подходе Atomic CSS, с которым можно создавать стили любой сложности. Что-то похожее на Tailwind, но по некоторым параметрам превосходит все популярные аналоги.
Какие преимущества?🖱
📌 Нейминг коротких классов интуитивно понятен и унифицирован, построен на популярных свойствах CSS.
📌 Мощные возможности генератора сложных стилевых комбинаций, близкие по духу к самому языку CSS.
📌 Полная поддержка препроцессора, позволяющая комбинировать собственные правила CSS с утилитами.
📌 Поддерживает кастомизацию и создание собственных дополнений.
⛓️💥 Ссылка на репозиторий
3️⃣ Orbitalika — сайт для моделирования орбит и орбитальных движений в трех плоскостях, а также визуализации траекторий в 3D пространстве. Как это работает: пользователь вводит шесть Кеплеровских элементов орбиты, и система сама строит реалистичную траекторию движения небесного тела.
Интересные факты🖱
📌 Разработка была начата студентами МГТУ имени Н.Э. Баумана в рамках программы «Инженерный класс» для наглядного представления законов небесной механики и освоения основ космической навигации.
📌 Первая версия появилась в 2024 году и получила положительные отзывы учителей физики и астрономии.
📌 Сайт написан на Python с использованием современных библиотек и инструментов, обеспечивающих высокую производительность и точность расчетов.
⛓️💥 Ссылка на репозиторий
#GitVerse_Разработчикам
Смотри, какой репозиторий!
Время дайджеста! Мы продолжаем изучать крутые проекты, которые нашли среди заявок грантовой программы, и вдохновлять ими. Сегодня снова принесли вам целых три. Давайте смотреть
Какие фишки?
Какие преимущества?
Интересные факты
#GitVerse_Разработчикам
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👎4😱1
Знаете ли вы, как использовать tox для создания матрицы сред тестирования?
Сделаем минимальную структуру проекта:
Представим себе такой
И сделаем тест, который будет вести себя по-разному в разных версиях Питона:
Варианты запуска:
При запуске:
- В py311
- В py310 модуля
Так,
tox позволяет декларативно определить и запустить тесты в матрице изолированных виртуальных окружений. Он автоматизирует создание, установку зависимостей и запуск команд для каждой комбинации версий Питона или конфигураций линтеров, обеспечивает проверку совместимости с разных сторон.Сделаем минимальную структуру проекта:
./tox.ini
./app/__init__.py
./tests/test_version_diff.py
Представим себе такой
tox.ini:[tox]
envlist = py310, py311, flake8
[testenv]
deps =
pytest
pytest-cov
commands =
pytest --cov=app tests/
[testenv:flake8]
deps = flake8
commands = flake8 app tests/
И сделаем тест, который будет вести себя по-разному в разных версиях Питона:
def test_version_diff():
import tomllib # модуль есть только в Python 3.11
data = tomllib.loads("x = 123")
assert data["x"] == 123
Варианты запуска:
# Запуск всей матрицы
tox
# Запуск конкретной версии Python
tox -e py311
tox -e py310
При запуске:
- В py311
import tomllib работает – тест пройдет.- В py310 модуля
tomllib нет – так что ModuleNotFoundError и тест падает.Так,
tox помогает проверять, каждое окружение независимо от других и от основной системы.🔥4🤯3👍2
Приветствую!
Грязная игра (2025)
Любите динамичные фильмы про ограбления с крутыми поворотами сюжета? Тогда «Грязная игра» с Марком Уолбергом — именно то, что вам нужно!
Фильм рассказывает о группе профессиональных преступников, которые планируют дерзкое ограбление с большими ставками. Главный герой — опытный лидер команды, который сталкивается с предательством, опасностями и необходимостью принимать быстрые решения, чтобы выйти из игры победителем.
«Грязная игра» — это не просто экшен, а напряжённый триллер с элементами драмы, где каждая минута на счету. Отличные сцены ограблений, продуманная режиссура и харизма Марка Уолберга создают атмосферу настоящего криминального приключения.
Если вам по душе фильмы в духе «Одиннадцати друзей Оушена» или «Пленниц», но с более жёстким и современным подходом — обязательно посмотрите «Грязную игру».
Грязная игра (2025)
Любите динамичные фильмы про ограбления с крутыми поворотами сюжета? Тогда «Грязная игра» с Марком Уолбергом — именно то, что вам нужно!
Фильм рассказывает о группе профессиональных преступников, которые планируют дерзкое ограбление с большими ставками. Главный герой — опытный лидер команды, который сталкивается с предательством, опасностями и необходимостью принимать быстрые решения, чтобы выйти из игры победителем.
«Грязная игра» — это не просто экшен, а напряжённый триллер с элементами драмы, где каждая минута на счету. Отличные сцены ограблений, продуманная режиссура и харизма Марка Уолберга создают атмосферу настоящего криминального приключения.
Если вам по душе фильмы в духе «Одиннадцати друзей Оушена» или «Пленниц», но с более жёстким и современным подходом — обязательно посмотрите «Грязную игру».
🔥6❤2
Всем привет!
Сегодня, 6 декабря, отмечается шуточный праздник — День Лентяя.
Для нас это уже почти две недели, потому что мы немного затянули со статьями… но мы исправимся 🙂
Откладывайте свои IDE-шки, проекты и задачи. Работа не всегда важнее отдыха — так почему бы не отдохнуть именно в День Лентяя?
Сегодня, 6 декабря, отмечается шуточный праздник — День Лентяя.
Для нас это уже почти две недели, потому что мы немного затянули со статьями… но мы исправимся 🙂
Откладывайте свои IDE-шки, проекты и задачи. Работа не всегда важнее отдыха — так почему бы не отдохнуть именно в День Лентяя?
👏4🎉4❤3🔥1
aiogram 3.23.0 вышел!
Только что вышло обновление библиотеки для написания Telegram-ботов aiogram 3.23.0. Которое не привносит нового функционала взаимодействия с Telegram, а концентрируется на технической стороне.
Поддержка Python 3.14
Ключевым изменением стала полная поддержка Python 3.14. Обновлены зависимости и тесты для полной совместимости.
Python 3.14 вышел совсем недавно, в ноябре 2025 года, и как обычно бывает со свежими релизами языка, далеко не все ключевые библиотеки готовы к этому сразу. В aiogram 3.22.0 на Python 3.14 были проблемы с
Прекращение поддержки Python 3.9
Обратной стороной нововведений, сталол прекращение поддержки Python 3.9. Python 3.9 вышел в ноябре 2020 года, а в ноябре 2025 года, вместе с выходом Python 3.14 он официально прекратил свой жизненный цикл.
Таким образом, минимальная совместимая версия Python стала 3.10.
В процессе отказа от поддержки 3.9, был проведён рефакторинг которой базы, включая замену аннотации типов из пакета
Установка обновления и история изменений
Для установки обновления библиотеки достаточно выполнить команду:
Полный список изменений: https://docs.aiogram.dev/en/latest/changelog.html
#python_3_14 #aiogram #aiohttp #py314 #pydantic #python #telegram #telegram_бот #библиотека #новости
Только что вышло обновление библиотеки для написания Telegram-ботов aiogram 3.23.0. Которое не привносит нового функционала взаимодействия с Telegram, а концентрируется на технической стороне.
Поддержка Python 3.14
Ключевым изменением стала полная поддержка Python 3.14. Обновлены зависимости и тесты для полной совместимости.
Python 3.14 вышел совсем недавно, в ноябре 2025 года, и как обычно бывает со свежими релизами языка, далеко не все ключевые библиотеки готовы к этому сразу. В aiogram 3.22.0 на Python 3.14 были проблемы с
aiohttp и pydantic.Прекращение поддержки Python 3.9
Обратной стороной нововведений, сталол прекращение поддержки Python 3.9. Python 3.9 вышел в ноябре 2020 года, а в ноябре 2025 года, вместе с выходом Python 3.14 он официально прекратил свой жизненный цикл.
Таким образом, минимальная совместимая версия Python стала 3.10.
В процессе отказа от поддержки 3.9, был проведён рефакторинг которой базы, включая замену аннотации типов из пакета
typing (List, Dict) на современный формат аннотирования без лишних импортов (list, dict).Установка обновления и история изменений
Для установки обновления библиотеки достаточно выполнить команду:
pip install -U aiogram
Полный список изменений: https://docs.aiogram.dev/en/latest/changelog.html
#python_3_14 #aiogram #aiohttp #py314 #pydantic #python #telegram #telegram_бот #библиотека #новости
🔥5❤4⚡3
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 01.12.2025 — Дайджест
🐍 Вторник, 02.12.2025 — Смотри, какой репозиторий!, Знаете ли вы, как использовать tox для создания матрицы сред тестирования?
🎬 Пятница, 05.12.2025 — Пятничный кинорелакс
🤖 Воскресенье, 07.12.2025 — aiogram 3.23.0 вышел!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 01.12.2025 — Дайджест
🐍 Вторник, 02.12.2025 — Смотри, какой репозиторий!, Знаете ли вы, как использовать tox для создания матрицы сред тестирования?
🎬 Пятница, 05.12.2025 — Пятничный кинорелакс
🤖 Воскресенье, 07.12.2025 — aiogram 3.23.0 вышел!
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥4👍3⚡1
Знаете ли вы о TOCTOU-уязвимости и как атомарные операции помогают ее избежать?
TOCTOU (Time-of-Check to Time-of-Use) – тип уязвимости, возникающий из-за race condition между моментом проверки состояния объекта (например, существует ли файл) и моментом его использования.
В многопоточных или многопроцессных средах между проверкой и использованием другой поток может изменить объект, а это приводит к непредсказуемым результатам и проблемам с безопасностью.
Частый случай этой уязвимости – создание файла. Представим функцию, которая пытается создать файл, когда его не существует:
Оба потока прошли проверку
Атомарная операция – это неделимое действие, которое либо выполняется полностью, либо не выполняется вообще, что исключает вмешательство других потоков и устраняет уязвимость TOCTOU. Посмотрим как это поможет:
Флаг
Код на салфетке x Кусочки кода
TOCTOU (Time-of-Check to Time-of-Use) – тип уязвимости, возникающий из-за race condition между моментом проверки состояния объекта (например, существует ли файл) и моментом его использования.
В многопоточных или многопроцессных средах между проверкой и использованием другой поток может изменить объект, а это приводит к непредсказуемым результатам и проблемам с безопасностью.
Частый случай этой уязвимости – создание файла. Представим функцию, которая пытается создать файл, когда его не существует:
import os
import time
import threading
def insecure_create(filename, thread_id):
if not os.path.exists(filename):
time.sleep(0.01)
with open(filename, 'w') as f:
f.write(f"Данные от потока {thread_id}")
print(f"Поток {thread_id}: файл создан")
if os.path.exists("data.txt"):
os.remove("data.txt")
t1 = threading.Thread(target=insecure_create, args=("data.txt", 1))
t2 = threading.Thread(target=insecure_create, args=("data.txt", 2))
t1.start()
t2.start()
t1.join()
t2.join()
with open("data.txt", 'r') as f:
print(f"Файл содержит: {f.read()}")
# Поток 1: файл создан
# Поток 2: файл создан
# Файл содержит: Данные от потока 2
Оба потока прошли проверку
if not os.path.exists(), но в файле остались только данные от потока 2 – он перезаписал данные потока 1. Номер потока в выводе может отличаться из-за race condition.Атомарная операция – это неделимое действие, которое либо выполняется полностью, либо не выполняется вообще, что исключает вмешательство других потоков и устраняет уязвимость TOCTOU. Посмотрим как это поможет:
import os
import errno
def atomic_create(filename, thread_id):
try:
fd = os.open(filename, os.O_CREAT | os.O_EXCL | os.O_WRONLY)
with os.fdopen(fd, 'w') as f:
f.write(f"Данные от потока {thread_id}")
print(f"Поток {thread_id}: файл создан атомарно")
except OSError as e:
if e.errno == errno.EEXIST:
print(f"Поток {thread_id}: файл уже существует")
else:
raise
if os.path.exists("data.txt"):
os.remove("data.txt")
import threading
t1 = threading.Thread(target=atomic_create, args=("data.txt", 1))
t2 = threading.Thread(target=atomic_create, args=("data.txt", 2))
t1.start()
t2.start()
t1.join()
t2.join()
with open("data.txt", 'r') as f:
print(f"Файл содержит: {f.read()}")
# Поток 1: файл создан атомарно
# Поток 2: файл уже существует
# Файл содержит: Данные от потока 1
Флаг
O_EXCL в комбинации с O_CREAT гарантирует, что os.open() создаст файл только если его не существует, иначе выдаст ошибку EEXIST. Эта операция атомарна на уровне ядра ОС.Код на салфетке x Кусочки кода
🤯4🔥3👍1
Вайбкодинг с нейросетью 1: проверяю сборку Flutter-приложения в AppImage
Автор: Eugene Kaddo
Данная статья посвящена сборке Flutter‑приложения в AppImage с помощью нейросетей GigaChat и Perplexity. Статья будет участвовать в конкурсе «Сезон ИИ в разработке» на Habr, посвящённом теме вайбкода в разработке.
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#Kivy #Эксперименты_с_ИИ #AppImage #Flutter
Автор: Eugene Kaddo
Данная статья посвящена сборке Flutter‑приложения в AppImage с помощью нейросетей GigaChat и Perplexity. Статья будет участвовать в конкурсе «Сезон ИИ в разработке» на Habr, посвящённом теме вайбкода в разработке.
Читать статью на сайте
Читать статью на Хабр
Поддержать проект через YooMoney
Поддержать проект через Tribute в Telegram
Поддержать проект через наш Telegram-бот
#Kivy #Эксперименты_с_ИИ #AppImage #Flutter
🔥6⚡4
Приветствую!
«Орудия» (2025)
Если хочется чего‑то странного, мрачного и не совсем привычного для хоррора, «Орудия» — отличный вариант. Формально это мистический ужастик про пропажу детей и ведьму, но по ощущениям фильм больше похож на чёрную сказку и сатиру на взрослых, власть и то, как старые правила ломают новое поколение.
В маленьком городке исчезают семнадцать шестиклассников, и взрослые в панике пытаются найти виноватого, но постепенно становится ясно, что дело не только в «зле снаружи». В центре истории — тётушка Глэдис: хрупкая старушка, которая оказывается могущественной ведьмой и превращает людей в свои «орудия», управляя ими через чёрную магию, страх и чувство вины.
«Орудия» (2025)
Если хочется чего‑то странного, мрачного и не совсем привычного для хоррора, «Орудия» — отличный вариант. Формально это мистический ужастик про пропажу детей и ведьму, но по ощущениям фильм больше похож на чёрную сказку и сатиру на взрослых, власть и то, как старые правила ломают новое поколение.
В маленьком городке исчезают семнадцать шестиклассников, и взрослые в панике пытаются найти виноватого, но постепенно становится ясно, что дело не только в «зле снаружи». В центре истории — тётушка Глэдис: хрупкая старушка, которая оказывается могущественной ведьмой и превращает людей в свои «орудия», управляя ими через чёрную магию, страх и чувство вины.
🔥4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Помните мобильный рынок 90-х (если не помните, то вам повезло)? Хаос из кабелей, несовместимых портов и боли. До недавнего времени индустрия ИИ выглядела так же. Хочешь подключить ChatGPT к Google Диску? Пиши один «костыль» (плагин). Хочешь Claude к базе данных? Пиши другой. Локальная LLM? Третий.
Это классическая проблема «N × M», которая тормозила всю отрасль. Но в ноябре 2024 года Anthropic выкатили Model Context Protocol (MCP). Эксперты называют его «портом USB-C для нейросетей».
Но не дайте простоте названия обмануть вас. Под капотом там не просто «труба для данных», а сложная архитектура брокеров, двусторонние диалоги и новые дыры в безопасности, от которых у вашего СБ ИТ дернется глаз.
Попробуем разобраться во всём. От нейминга функций до «Теневого ИИ».
В основе MCP лежит философия разделения ответственности, так скажем - строгий протокол.
Архитектура:
Три кита функциональности (и один секрет):
Если вы назовете инструмент
tool_01 с описанием gets data, модель будет галлюцинировать или игнорировать его.Вы обязаны называть инструмент семантически точно:
get_customer_churn_rate и в описании детально разжевывать: "Используй это, когда пользователь спрашивает про отток клиентов за квартал. Принимает дату в формате YYYY-MM-DD". В MCP описание инструмента - часть исполняемого кода. Ошиблись в слове и сломали логику агента.MCP - не улица с односторонним движением («ИИ, дай команду»). Протокол намного умнее.
Что же под «капотом»?
Это киллер-фича. Обычно человек просит ИИ что-то сделать. В MCP сервер может попросить ИИ: «Эй, я вижу тут сложный лог ошибки, сгенерируй-ка мне его анализ».
Сервер использует «мозг» подключенной модели для своих внутренних задач. И выглядит это уже как не просто подключение, а делегирование (sub-agents delegation).
Механизм, позволяющий серверу сказать: «Мне не хватает данных, спроси у пользователя уточнение».
Это вводит стандартизированный Human-in-the-loop. ИИ перестает быть черным ящиком, который молча творит дичь. Если данных для SQL-запроса не хватает, сервер через протокол заставляет ИИ задать вопрос вам.
Как они общаются физически?
- Stdio: Для локальных агентов. Быстро, безопасно, все внутри одного процесса.
- SSE (Server-Sent Events): Для удаленки. Позволяет серверу самому «пинать» ИИ в реальном времени: «Эй, данные на бирже изменились, пересчитай прогноз!».
Если смотреть на MCP глазами архитектора, это реализация классических паттернов проектирования, спасающая нас от хаоса.
MCP создает центральный реестр. Агенты находят инструменты через единый стандарт. Сложность падает до линейной O(N).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
Шутка от СБ ИТ: буква «S» в MCP означает Security. То есть её там нет. Внедрение протокола опережает безопасность.
Наши «грабли»:
Кошмар для службы безопасности. Любой разработчик может запустить локальный MCP-сервер на ноутбуке, дать ему доступ к локальным файлам/документам и подключить к внешнему ИИ.
Поскольку канал связи (Stdio/SSE) инициируется изнутри, корпоративный фаервол этого не видит. Данные улетают в «мозг» модели легально, мимо DLP-систем. Ну если только у вас не локальная корпоративная LLM.
Мы привыкли, что
npm install - риск. Но MCP-серверы пока вообще никак не подписываются.Вы качаете сервер
weather-mcp с GitHub, а он оказывается трояном. Через Prompt Injection он заставляет вашу модель (которой вы доверяете!) слить пароли из подключенной базы данных.Компании обязаны ставить не просто серверы, а Шлюзы MCP. Это прослойка-фильтр (AI Firewall), которая:
MCP сравнивают с USB-C. Хоть это и удачная аналогия, как будто физический разъем, но чтобы устройства «поняли» друг друга, нужны протоколы выше уровнем (как TCP/IP).
MCP - база «Клиент-Сервер». Но рядом растут конкуренты и надстройки:
Мы, так сказать, в самом начале пути стандартизации.
Забудьте про «просто программистов». Для MCP нужны немного иные роли:
MCP превращает ИИ из «умного чат-бота» в реального сотрудника с доступом к рубильникам. Выглядит, вроде, мощно, но требует железной дисциплины в архитектуре и паранойи в безопасности.
ЗЫ: небольшая библиотека всяких готовых MCP. За качество не ручаюсь
https://glama.ai/mcp/servers
Код на салфетке x Мозг в данных
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤3
Привет, друзья! 👋
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 08.12.2025 — Дайджест
🐍 Вторник, 09.12.2025 — Знаете ли вы о TOCTOU-уязвимости и как атомарные операции помогают ее избежать?
⚙️ Четверг, 11.12.2025 — Вайбкодинг с нейросетью 1: проверяю сборку Flutter-приложения в AppImage
🎬 Пятница, 12.12.2025 — Пятничный кинорелакс
🤖 Воскресенье, 14.12.2025 — ЭРА «USB-C» ДЛЯ ИИ: ПОЛНЫЙ РАЗБОР MODEL CONTEXT PROTOCOL (MCP)
🎁 Небольшой анонс:
Совсем скоро на канале стартует новогодний розыгрыш 🎄
Готовьтесь, будет интересно — и не забудьте позвать друзей, им тоже может повезти 😉
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе:
📋 Новое на канале:
🔄 Понедельник, 08.12.2025 — Дайджест
🐍 Вторник, 09.12.2025 — Знаете ли вы о TOCTOU-уязвимости и как атомарные операции помогают ее избежать?
⚙️ Четверг, 11.12.2025 — Вайбкодинг с нейросетью 1: проверяю сборку Flutter-приложения в AppImage
🎬 Пятница, 12.12.2025 — Пятничный кинорелакс
🤖 Воскресенье, 14.12.2025 — ЭРА «USB-C» ДЛЯ ИИ: ПОЛНЫЙ РАЗБОР MODEL CONTEXT PROTOCOL (MCP)
🎁 Небольшой анонс:
Совсем скоро на канале стартует новогодний розыгрыш 🎄
Готовьтесь, будет интересно — и не забудьте позвать друзей, им тоже может повезти 😉
🔗 Будьте ближе к нам:
🌐 Читайте полные статьи на сайте
💬 Присоединитесь к обсуждению в чате
Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀
#дайджест #код #python #полезное #код_на_салфетке
🔥5⚡4
Знаете ли вы, как вызвать функцию со 100 аргументами одной строкой?
На собеседованиях часто спрашивают про
Именно этими операторами можно, например, распаковать список из 100 элементов в аргументы функции одной строкой, объединить несколько списков или словарей и даже контролировать, как именно пользователь должен передавать параметры. Посмотрим на самые интересные приемы.
Распаковка при вызове функции:
Звездочки – просто соглашение, имя может быть любым:
Keyword-only параметры через
А positional-only параметры через
Порядок параметров строго определен, иначе – SyntaxError:
Распаковка работает не только в функциях:
И на последок, классическая ловушка – распаковка при определении vs при вызове:
Код на салфетке x Кусочки кода
На собеседованиях часто спрашивают про
*args и **kwargs, но не все знают, что это не магические имена, а всего лишь идиоматическое соглашение. На самом деле, звездочки * и ** – это операторы сбора и распаковки (Packing/Unpacking Operators). Вы можете написать *pizza вместо *args, и это будет работать.Именно этими операторами можно, например, распаковать список из 100 элементов в аргументы функции одной строкой, объединить несколько списков или словарей и даже контролировать, как именно пользователь должен передавать параметры. Посмотрим на самые интересные приемы.
Распаковка при вызове функции:
def process_data(a, b, c, d, e, f, g, h, i, j):
return sum([a, b, c, d, e, f, g, h, i, j])
numbers = list(range(10))
result = process_data(*numbers) # Распаковали список в 10 аргументов
print(result) # 45
# Можно комбинировать несколько распаковок
basic = ["Alice", 30]
location = ["NYC", "USA"]
def create_user(name, age, city, country, email):
print(f"{name}, {age}, {city}, {country}, {email}")
create_user(*basic, *location, "alice@example.com")
# Alice, 30, NYC, USA, alice@example.com
Звездочки – просто соглашение, имя может быть любым:
def sum_all(*numbers): # можно *pizza, *data, что угодно
return sum(numbers)
def build_query(**filters): # можно **options, **params
return " AND ".join(f"{k}={v}" for k, v in filters.items())
print(sum_all(1, 2, 3, 4, 5)) # 15
print(build_query(age=30, city="NYC")) # age=30 AND city=NYC
Keyword-only параметры через
* без имени:def create_file(filename, *, mode, encoding):
print(f"Creating {filename} with mode={mode}, encoding={encoding}")
# create_file("data.txt", "w", "utf-8") # Будет TypeError!
create_file("data.txt", mode="w", encoding="utf-8") # А так – OK
А positional-only параметры через
/, могут быть полезны для API, где имена параметров могут измениться в будущем (Python 3.8+):def divide(a, b, /):
return a / b
print(divide(10, 2)) # 5.0
# print(divide(a=10, b=2)) # TypeError – только позиционные!
Порядок параметров строго определен, иначе – SyntaxError:
# Правильно:
def good(a, b, /, c, *args, d, **kwargs):
pass
# Неправильно:
# def bad(*args, **kwargs, a): # SyntaxError
# def bad(/, a, b): # SyntaxError
Распаковка работает не только в функциях:
# В списках
list1 = [1, 2, 3]
list2 = [*list1, 4, 5, *list1]
print(list2) # [1, 2, 3, 4, 5, 1, 2, 3]
# В словарях
defaults = {"host": "localhost", "port": 8080}
user_config = {"port": 3000, "debug": True}
config = {**defaults, **user_config}
print(config) # {'host': 'localhost', 'port': 3000, 'debug': True}
# В присваивании
first, *middle, last = [1, 2, 3, 4, 5]
print(f"first={first}, middle={middle}, last={last}")
# first=1, middle=[2, 3, 4], last=5
И на последок, классическая ловушка – распаковка при определении vs при вызове:
def mystery(*args):
return args
print(mystery([1, 2, 3])) # ([1, 2, 3],) – один аргумент-список
print(mystery(*[1, 2, 3])) # (1, 2, 3) – три аргумента
* и ** это операторы распаковки, они работают при вызове и определении функций. / делает параметры positional-only, а * без имени делает следующие параметры keyword-only.Код на салфетке x Кусочки кода
👍7🤯2
ИИ бот-модератор 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