Обновить
623.92

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга

Вышел релиз программного обеспечения topalias 3.0.0

topalias 3.0.0
topalias 3.0.0

Установка:
pip3 install -U --upgrade topalias
pipx install --force topalias
python3 -m pip install -U --upgrade topalias
python3.10 -m pip install -U --upgrade topalias

Запуск утилиты topalias:
topalias
python3 -m topalias
python3.10 -m topalias
python3 topalias/cli.py

Изменения:
Поддерживается Ubuntu 25.10/Python 3.13, Kubuntu 22.04/Python 3.10, KDE neon Rolling

Просьба проверить на актуальной версии Python 3.15 в KDE neon

Ссылка на дистрибутив KDE neon Rolling: https://distrowatch.com/table.php?distribution=kdeneon

topalias - утилита для генерации коротких алиасов по истории bash/zsh

На GitHub опубликована открытая утилита для генерации коротких алиасов на основании истории работы в bash или zsh. Утилита анализирует файлы ~/.bash_aliases, ~/.bash_history и ~/.zsh_history с историей выполнения команд в терминале Linux, после чего предлагает короткие аббревиатуры (акронимы) для длинных, долго набираемых и сложно запоминаемых, но часто используемых команд. Также поддерживается вывод статистики по истории работы в командной строке.

Если вы работаете в терминале десятки раз в день, алиасы — это мощный инструмент повышения эффективности. Но с ростом количества проектов и конфигураций .bashrc/.zshrc алиасов становится много: часть дублируется, часть устарела, некоторые перекрывают системные команды. topalias решает три задачи:

  • дать метрику использования алиасов (какие используются чаще всего);

  • упростить создание/удаление/пакетное управление алиасами;

  • находить конфликтные или опасные алиасы и предлагать безопасные альтернативы.

В статье — обзор возможностей, примеры использования, внутренняя архитектура и практические рекомендации для интеграции с bash/zsh/fish.

Ключевые возможности

  • Сбор статистики использования алиасов на основе shell-history.

  • Команда top — список наиболее часто используемых алиасов.

  • Интерактивный режим (TUI) для обзора, включения/выключения и редактирования.

  • Поддержка bash, zsh и fish.

  • Экспорт/импорт в виде конфигурационных файлов и git-репозиториев.

  • Поиск конфликтов (алиас затеняет системную команду) и предупреждения.

  • Генератор «умных» алиасов: на основе частых цепочек команд предлагает сокращения.

  • Пакетная миграция между машинами (pack/unpack).

  • Небольшой daemon/cron для частого обновления статистики (опционально).

# клонируем репозиторий

git clone https://github.com/CSRedRat/topalias.git

cd topalias

# установка в виртуальное окружение (рекомендуется)

python -m venv .venv

source .venv/bin/activate

pip install -e .

# инициализация в shell (одна строчка, добавьте в .bashrc/.zshrc)

topalias init --shell auto >> ~/.topalias-shell-rc && source ~/.topalias-shell-rc

Примечание: init генерирует небольшую обёртку для history-hook, чтобы собирать данные об использовании алиасов без заметной нагрузки.

Подписывайтесь на канал в Telegram: https://t.me/ruopsdev

Второй канал на Телеграм: https://t.me/journal_rbc_pro

  • Просмотр самых часто используемых алиасов:

topalias top
topalias top --limit 20 # или с лимитом
  • Найти алиас по фрагменту:

topalias find git
  • Создать алиас:

topalias add ga='git add --all'
  • Удалить алиас:

topalias rm ga
  • Интерактивный режим (TUI):

topalias ui
  • Экспорт текущих алиасов в файл:

topalias export --format bash > ~/.topalias-export.sh

Импорт из файла:

topalias import ~/.topalias-export.sh

Если вы часто выполняете цепочку:

git add . && git commit -m "WIP" && git push

topalias предложит вариант:

topalias suggest
# suggestion: gpush = git add . && git commit -m "WIP" && git push
topalias add gpush='git add . && git commit -m "WIP" && git push'

Проверим, не перекрывает ли алиас системную команду:

topalias check-conflicts
# output:
# - ls -> aliased to "ls --color=auto" (OK)
# - df -> aliased to "du -h" (DANGER: shadows system df)

Сохраняем пакет алиасов и переносим на другой компьютер:

topalias pack --name work-aliases > work-aliases.tar.gz
# на другом хосте
topalias unpack work-aliases.tar.gz
topalias import unpacked/work-aliases.sh
Теги:
-1
Комментарии8

Находим самое длинное, естественное слово в русском языке.

Вчера на Хабре, на мой взгляд, вышел диковатый пост, где нам/русскоязычным читателям в очередной раз брызнули в уши: Найдено самое длинное слово в русском языке — «тетрагидропиранилциклопентилтетрагидропиридопиридиновые»

В государственном Институте им. А.С. Пушкина с помощью искусственного интеллекта определили самое длинное слово в русском языке. Заведующий кафедрой общего и русского языкознания института Павел Катышев пояснил СМИ, что этим словом из 55 букв стало прилагательное, описывающее химическое соединение — «тетрагидропиранилциклопентилтетрагидропиридопиридиновые».

👉 "с помощью искусственного интеллекта", о, как!

На мой взгляд, "тетрагидропиранилциклопентилтетрагидропиридопиридиновые" в переводе на русский — "хрень какая-то".

Я скачал в Интернете словари русского языка и с помощью Python на ладони, простым, как 5 копеек алгоритмом в несколько строк кода (отсортировал слова по длине/убыванию), определил самые настоящие, утверждённые, длинные слова в нашем могучем языке.

Получились два типа слов: простое и через дефис.

1) Орфографический словарь п/р проф. Лопатина (2000 год)::

  • сельскохозяйственно-машиностроительный (38)

  • водогрязеторфопарафинолечение (29)

2) Новый толково-словообразовательный словарь русского языка. Автор Т. Ф. Ефремова (2000 год)::

  • обстоятельственно-определительных (33)

  • трансформаторостроительный (26)

3) Толковый словарь под ред. C. И. Ожегова и Н.Ю.Шведовой, М., Азъ (1992 год)::

  • государственно-административного (32)

  • административно-территориального (32)

  • высокопревосходительство (24)

  • высококвалифицированного (24)

  • человеконенавистничество (24)

4) Толковый словарь В.И. Даля (II изд. (1862-1866 годы)::

  • церковносвященнослужители (25)

  • пристанодержательствовать (25)

Распарсено на коленке в Termux. Скрин слева — определение кодировки словаря В.И. Даля (кракозябры, обычно в UNIX кодировка Виндовских ru txt файлов: cp1251/windows-1251, но тут попалась cp1125). Скрины справа — пример разбора на Python двух словарей. Время на скриншотах разбросано, искал, где в Интернете можно скачать словари.
Распарсено на коленке в Termux. Скрин слева — определение кодировки словаря В.И. Даля (кракозябры, обычно в UNIX кодировка Виндовских ru txt файлов: cp1251/windows-1251, но тут попалась cp1125). Скрины справа — пример разбора на Python двух словарей. Время на скриншотах разбросано, искал, где в Интернете можно скачать словари.

Передаю эстафету дальше...

Теги:
+9
Комментарии5

Задача о вписанном в окружность многоугольнике

Условие

Есть окружность с центром O, а также N, множество вершин многоугольника, вписанного в фигуру. Каждая вершина может быть расположена на длине окружности случайным образом. Нужно определить вероятность, что при случайном наборе N центр O будет внутри этого образованного многоугольника.

Задача

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

Как подойдете к задаче? Напишите свое решение в комментариях и сверьтесь с алгоритмом в Академии Selectel.

Теги:
+3
Комментарии18

Представлена открытая библиотека Reduino, которая поможет программировать микроконтроллеры на Python. Знания сложного и запутанного C++ не нужны, разбираться в нюансах Arduino больше не надо. Можно легко запрограммировать RGB-ленты, датчики, сенсоры и другие девайсы на простом Python. Ресурс помогает использовать все синтаксические структуры без кучи манипуляций с памятью: условия, циклы, массивы, кортежи и понятное ООП. Библиотека преобразует код в C++.

Теги:
+4
Комментарии5

Легендарный разработчик культовых игр Джон Кармак посоветовал разработчикам на Python никогда не переназначать и не обновлять переменную вне итеративных вычислений в циклах. По его словам, наличие всех промежуточных вычислений полезно в отладчике и позволяет избежать проблем, когда при перемещении блока кода он автоматически использует версию переменной, отличную от изначальной. А вот в C/C++ хорошей практикой является инициализация практически всех переменных как const. Кармаку хотелось бы, чтобы это было сделано по умолчанию, а mutable было ключевым словом.

Ранее на Хабре был пост: "17 открытых репозитариев, чтобы выучить Python с нуля".

Теги:
+2
Комментарии3

Расскажем, как проводить нагрузочное тестирование на Python

Ждем вас через час, в 18:30 мск, на митапе для Python-специалистов. Как обычно, поговорим обо всем, что волнует сообщество. Сделаем глубокий разбор экосистемы mypy и протестируем ее. Выясним, как запускать задачи по расписанию от cron/systemd timers до чистого Python. Узнаем, насколько сильно можно нагрузить систему, прежде чем она сломается. Все это — в компании экспертных спикеров из Selectel, Яндекса и Райффайзен Банка. 

Приходите лично или подключайтесь к трансляции.

Программа

18:35-19:05 — mypy в неестественной среде обитания
Сделаем обзор gradual typing в Python и экосистемы mypy, разберем отличия от линтеров и других анализаторов типа.

19:05-19:35 — Все идет по cron-у. Или нет?
Поговорим о том, как запускать задачи по расписанию: от cron/systemd timers до чистого Python и библиотек вроде APScheduler, Celery, а также Kubernetes CronJob и Redis Queue.

19:35-20:00 — Ломай меня полностью
Разберемся, зачем и как проводить нагрузочное тестирование.

Подключайтесь к трансляции:

YouTube
ВКонтакте

Теги:
+6
Комментарии0

Пишу операционную систему для устройства на E-Ink, часть 2.

Всем привет! Сегодня я продолжаю писать операционную систему для своего "смартфона" (назвал потому что прикольно звучит).

Сегодня мало чего сделал, обновил ядро для "многозадачности" (листать задачи можно).

Также сделал штуку, которая запускает все приложения, но в будущем будет планировать задачи (планировщик задач, верно?).

Пока ещё не получил три кнопки и дисплей хочу сделать ядро.

В принципе первая версия будет простой, предсказуемой, почти стабильной и мало функциональной.

Удачи!

Теги:
-1
Комментарии6

Как я починил ошибку tokenizers в ComfyUI

Workflow Wan 2.2 GGUF Speed ComfyUI - генерация девушки-кота на Хэллоуин 
Workflow Wan 2.2 GGUF Speed ComfyUI - генерация девушки-кота на Хэллоуин 

Недавно столкнулся с ошибкой при запуске ComfyUI - конфликт версий библиотеки tokenizers. Ошибка выглядела так: ImportError: tokenizers>=0.22.0,<=0.23.0 is required for a normal functioning of this module, but found tokenizers==0.21.4....Рассказываю, как я её исправил без поломки окружения и рабочих workflow.

Описание контекста:
У меня Portable-версия ComfyUI, встроенный Python (папка "python_embeded", папка "update", рабочие workflow и боязнь обновлять всё подряд)

Конфликт:
ComfyUI или один из плагинов требует tokenizers >= 0.22.0, а установлена старая 0.21.4. Ранее я уже точечно менял wheels и версию torch для работы с Nunchaku.

Решение:
Прямые команды, выполненные через PowerShell в папке ComfyUI:
(Чтобы ввести команды - нужно находясь внутри папки ComfyUI нажать Shift + ПКМ на свободном месте в этой папке и выбрать "Открыть окно PowerShell здесь" и ввести нужные команды)

python_embeded\python.exe -m pip uninstall -y tokenizers
python_embeded\python.exe -m pip install tokenizers==0.22.0

После перезапуска всё заработало:

PS D:\AI\ComfyUI2> python_embeded\python.exe -m pip uninstall -y tokenizers Found existing installation: tokenizers 0.21.4
Uninstalling tokenizers-0.21.4:
Successfully uninstalled tokenizers-0.21.4
и
PS D:\AI\ComfyUI2> python_embeded\python.exe -m pip install tokenizers==0.22.0
Collecting tokenizers==0.22.0
Using cached tokenizers-0.22.0-cp39-abi3-win_amd64.whl.metadata (6.9 kB) Requirement already satisfied: huggingface-hub<1.0,>=0.16.4 in d:\ai\comfyui2\python_embeded\lib\site-packages (from tokenizers==0.22.0) (0.34.4) .....
Successfully installed tokenizers-0.22.0

Как итог - видео с разрешением 364 на 640px, продолжительностью 5 секунд, сгенерировалось за 8,5 минуты на 8гб VRAM + 32гб RAM.

Почему важно не трогать "update_comfyui_and_python_dependencies.bat" ? Чтобы не нарушить совместимость всего окружения.
В таких случаях не стоит паниковать - достаточно понимать, как работают зависимости Python и виртуальные окружения.

Если вы работаете с ComfyUI или подобными пакетами, умение диагностировать и чинить зависимости - ваш надёжный инструмент в арсенале.

#ai #comfyui #python #design #code #workflow #ии

Теги:
-2
Комментарии2

Пишу операционную систему для устройства на E-Ink, часть 1.

Всем привет! В своей первой новости (не буду оставлять ссылку) я говорил про некую читалку. Да, проект прикольный, но я собираюсь сделать такое же устройство только с 4.2 дюймовым таким дисплеем и 3 кнопками (влево, выбрать, вправо).

Проект будет на Raspberry Pi Pico W.

Сегодня я сделал библиотеки, нужную структуры (мне будет всё равно на то, что в конечном итоге останется 10 бит памяти) и сделал небольшое ядро.

Выглядит плохо, но старался. Короче сделав небольшое ядро, я почувствовал эту мощь правильной структуры. Когда сделал 100 строк, и тебе остается добавить по 10 в двух файлах, что бы все вызовы 100-го файла были вызваны.

Также все приложения будут написаны на Python.

Много чего ещё осталось сделать, но база уже есть.

Удачи.

Теги:
+2
Комментарии12

Новые лекции Python + AI выпустили в Microsoft. В них эксперты собрали самую актуальную информацию про кодинг и создание продвинутых нейропомощников на основе последних разработок с подробными презентациями и примерами кода, в том числе RAG, эмбеддинги, агенты и MCP-протокол.

Теги:
+1
Комментарии0

OpenAI + Google Studio и немного Python = создаем бесплатную аудиокнигу без лишних заморочек

Ведущая Coral c Openai.fm
Ведущая Coral c Openai.fm

 В своё время моё отношение к аудиокнигам изменилось благодаря легендарному проекту «Модель для сборки» с Владом Коппом. Именно благодаря МДС я понял, что книги можно не только читать, но и прекрасно воспринимать в формате аудио. Аудиоформат даёт возможность знакомиться с произведениями в дороге или во время прогулок. Прекрасно помню времена, как загружал в свой MP3-плеер на 512 МБ выпуски МДС и, вместо того чтобы ехать с работы в тесной маршрутке, устраивал себе полуторачасовые прогулки в компании очередного фантастического рассказа.

Эпоха аудиоизобилия

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

Например, один из моих любимых циклов — «Зоны мысли» Вернора Винджа. «Пламя над бездной»«Глубина в небе» и «Болтушка» легко найти в сети. А вот заключительную часть — «Дети неба» — увы, никто не озвучил.

Поскольку мы живём в эпоху искусственного интеллекта, решение приходит само собой: если нужной аудиокниги нет — сделай её сам. Требования у меня простые, без претензий:

  1. Качество должно быть приемлемым;

  2. Платить не хочется, поэтому все должно быть полностью бесплатным.

Голос

Вспомнил я про сайт OpenAI FM — демо-площадку голосовой модели gpt-4o-mini-tts . Она звучит естественно и хорошо справляется с русским языком. Выбор из 11 разных дикторов. А так же есть классная фитча - промт инструкции для стиля речи, благодаря чему можно управлять «подачей» — делать её более спокойной, вдохновлённой или нейтральной . Поигравшись с промтами и выбрав голос, переходим к следующему этапу. На сайте можно бесплатно генерировать небольшие аудиофрагменты длиной до 999 символов. Ограничение не стало проблемой. Берем Python + Selenium WebDriver, и получаем программу, которая:

  • делит текст книги на чанки нужной длины,

  • отправляет их на сайт,

  • сохраняет аудиофайлы,

  • затем объединяет всё в одно произведение с помощью FFmpeg.

Результат получился неожиданно достойным. Да, между фрагментами иногда чувствуется разница в тембре, особенно в первые секунды. А ударения не всегда точны и изредка проскакивает лёгкий акцент. Но в целом — получилась полноценная озвученная аудиокнига.

Музыкальная подложка

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

Платные сервисы вроде Suno или Udio я сразу отбросил. Зато вспомнил про Google AI Studio, где в разделе Build есть приложение PromptDJ MIDI. Оно позволяет создавать музыку прямо в браузере — достаточно задать стиль и параметры.

Скопировал прямо в Studio приложение, в промпте указал стиль space ambient и добавил возможность скачивания получившегося трека. Поигравшись с настройками в полученном приложении, получил именно то, что меня устроило.

Оставалось объединить музыкальную дорожку с голосом — снова помог FFmpeg.

Инструменты:

  • OpenAI FM — генерация речи;

  • Google AI Studio (PromptDJ MIDI) — генерация фоновой музыки;

  • Python + Selenium + FFmpeg — автоматизация и сборка.

Затраты: 0 долларов и несколько часов времени.

Итог: Получилась аудиокнига приличного качества с музыкальным сопровождением. Конечно, это не уровень профессиональных дикторов , но для личного использования — IMHO более чем достойно. Плюс абсолютно бесплатно.

Теги:
+7
Комментарии22

17 открытых репозитариев, чтобы выучить Python с нуля:

  • 30-Days-Of-Python — пошаговый курс на 30 дней: синтаксис, типы, функции, ООП, файлы, модули, мини-проекты и задания с решениями;

  • Python Basics — вся база и примеры по основам для новичков;

  • Learn Python — конспект тем с наглядными примерами и ссылками; удобно как быстрый справочник и повторение;

  • Python Guide — лучшие практики: окружение, управление пакетами, стиль, тестирование, деплой, инструменты;

  • Learn Python 3 — понятные ноутбуки и упражнения по Python 3. Лучший репо для самостоятельной практики;

  • Python Programming Exercises — 100+ задачек по базовым темам с решениями; Coding Problems — алгоритмические задачи, разбитые по темам и сложности. Идеально для подготовки к собеседованиям;

  • Project-Based-Learning — большая подборка учебных проектов с пометками по уровню сложности;

  • Projects — идеи проектов по категориям (CLI, веб, игры и другое) для портфолио и прокачки;

  • 100-Days-Of-ML-Code — краткий дневник-план по машинному обучению: темы на каждый день, базовые алгоритмы и ссылки для реализации на Python.

  • TheAlgorithms/Python — огромный справочник алгоритмов/структур данных с реализациями и тестами;

  • Amazing-Python-Scripts — набор готовых скриптов: автоматизация, парсинг, утилиты, GUI; каждый с инструкцией по запуску.

  • Geekcomputers/Python — склад идей с практичными скриптами;

  • Real Python Materials — исходники и материалы к статьям/курсам Real Python;

  • Awesome Python — топ-подборка библиотек и фреймворков, разбитая по категориям;

  • 30-Seconds-of-Python — короткие функциональные фрагменты кода с пояснениями;

  • Python Reference — шпаргалки, лайфхаки и туториалы.

Теги:
+10
Комментарии3

Три кота, на которых держится QA в финтехе

Когда люди слышат «QA-инженер», они обычно думают: «А, это тот человек, который нажимает все кнопки подряд и заносит баг-репорты в Jira». Ха-ха, мимо.

Всем привет! Я Настя, QA-инженер в «Финаме». Мой путь в тестировании начался с эксплуатации торгово-клиринговой системы «СПБ Биржи», а последние несколько лет я тестирую бэк-офисные и торговые системы. И за это время я убедилась: QA в финансовой компании — это отдельная вселенная.

Сегодня я хочу поделиться чек-листом навыков выживания и развития, которые просто необходимы любому QA в финтехе, — три кота, на которых всё держится.

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

В обычном QA баг-репорты выглядят как «пользователь нажал кнопку — система упала». В финтехе сценарий может звучать как «один трейдер выставил заявку на опционы через API ЦБ, а в это время сработала маржинальная проверка, в результате чего вышло несхождение в клиринговом отчете». Ничего не понятно?

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

Как прокачать предметку? Изучите бизнес-процессы. Разберите базовые термины. И не ленитесь изучать теорию финансов, а не только учебники по Java и Python.

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

Без знания SQL вы потеряетесь в финансовом секторе. Тут лучше иметь продвинутые SQL-навыки, например:

  • агрегаты (COUNT, SUM, AVG) — быстро сворачивают кучу данных в удобный формат;

  • временные таблицы — магический инструмент. Данные не лежат «готовыми», их нужно поймать, сохранить и присоединить к основной таблице;

  • JOIN’ы — мостики между таблицами. Без них ваши данные просто стоят отдельно, как несогласованные депозиты на разных счетах;

  • типы данных и кастинг — часто разные источники хранят одно и то же по-разному. Не забудьте привести к одному виду.

И не храните текст — ID гораздо быстрее. Умение работать с SQL в финтехе — не просто навык, а мастхэв для QA: чем лучше владеете этим языком, тем увереннее двигаетесь в мире цифр и транзакций.

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

Без автотестов в финтехе никуда, слишком много данных и проверок. Для меня топ — Python, идеален для тестирования SQL-запросов. Конечно, можно и на других языках, всё зависит от задач. Но если только начинаете, Python, простой и с кучей бесплатных курсов, будет вашим спасательным кругом. Я, кстати, стартовала на «Питонтьюторе» — и ничего, выжила!

Пара фишек: 

  • pytest — швейцарский нож для автотестов. Параметризация позволяет запускать кучу тестов с разными данными, не плодя сотни копий кода; 

  • и подружитесь со словариками: они как маленькие контейнеры для данных, очень удобны при работе с результатами SQL или параметрами тестов.

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

Что мы поняли из истории про трех котов? Предметка рулит. Для работы в финтехе нужно знать термины, процессы и специфику инструментов. SQL — ваш супергерой. Без него вы потеряетесь в горах таблиц и хранимок. Автотесты спасают ваши нервы и время. Даже пара тестов в неделю увеличит покрытие и прокачает навыки.

В следующих постах мы с коллегами расскажем больше о работе в финтехе. До скорых встреч!

Теги:
+10
Комментарии1

Ближайшие события

Всем привет👋. Сегодня хочу рассказать новость: я начинаю свой новый проект который я ещё не назвал но название будет типа Pear PDA. Коротко говоря, это что-то типа устройства Palm III (НЕ РЕКЛАМА).

Будет на кнопках и на e-ink дисплее. У меня ещё нечего нету для сборки но если у вас имеется e-ink дисплея или какие ни будь кнопки то вы можете принять участие.

Если захотите что-то добавить то вот ссылка:

SystemSoftware2/Pear-PDA

Это не рекламный пост. Просто хочу донести до вас свои мысли.

Да, и если у вас есть идеи прошу разлагать их где ни будь (в комментариях к примеру).

Забыл написать: всё будет на MicroPython.

Удачи!

Теги:
-4
Комментарии13

Народ жалуется на трудности поиска работы. В частности такие жалобы есть в группе русского QA коммьюнити в США. Написал для них следующий пост. Интересно сколько откликнется:

"Господа! В этом коммьюнити есть junior QA, которым могут быть полезны (например для поиска работы) рекомендации в LinkedIn. Я готов написать нижеследующую рекомендацию в обмен на несложную работу: проверить инструкцию и репозиторий для семинара, который я буду проводить в грядущий викенд в Cal Poly SLO (Калифорнийский политехнический государственный университет в Сан-Луис-Обиспо).

Рекомендация в LinkedIn будет звучать так:

"Товарищ такой-то/такая-то demonstrated reliable QA skills and verification creativity when testing a CI/CD workflow setup for an educational project aimed to help the universities to teach VLSI classes. The tested product is a variant of a Tiny Tapeout GitHub template for ASIC synthesis used during the Verilog Meetup at California Polytechnic State University in San Luis Obispo, California. The template includes JSON-based GitHub Actions and Python scripts to run Yosys/OpenROAD-based RTL-to-GDSII flow and cocotb/pytest-based verification for the digital designs coded in SystemVerilog. такой-то/такая-то wrote an informative report describing the observed usability problems and unclear parts in the instructions for the user. This work greatly contributed to the success of the CalPoly seminar and similar planned events in microelectronics workforce development.

Инструкция здесь - https://verilog-meetup.com/2025/10/20/from-fpga-to-asic-using-template/

Если вас это заинтересовало, можете приступать. За вопросами можете обращатся в личку.

Теги:
0
Комментарии7

Питон - предмет обожания секты питонистов, которые ходят по домам и всем говорят "Как, вы еще не выучили Питон? Он же учится за две недели!"

Допустим, но вот два практически идентичных репозитория (1, 2), которые я только что приготовил как форки от двух других практически идентичных репозиториев. Один для создания чипа на немецкой фабрике IHP (The Leibniz Institute for High Performance Microelectronics), а другой для создания чипа на американской фабрике SkyWater (аналог зеленоградского Микрона для военных).

И вот в одном репозитории на питоне нужно писать:

clock = Clock(dut.clk, 10, units="us")
assert not ((dut.uio_out.value >> 4) & 1);

а в другом:

clock = Clock(dut.clk, 10, unit="us")
assert not dut.uio_out.value [4];

Если во втором написать не "unit", а "units", оно пожалуется:

DeprecationWarning: The 'units' argument has been renamed to 'unit'.

DeprecationWarning: The 'units' argument has been renamed to 'unit'.

И типы данных поменялись:

unsupported operand type(s) for >>: 'LogicArray' and 'int'

А все почему? У питониcтов все время меняются версии, и в их коммьюнити не принято поддерживать обратную совместимость:

"Просто используй другую версию!", "Просто поставь виртуальные среды!", "Как, ты еще не используешь Докер? С ним это решается элементарно!" - "Ты просто не pythonian!"

Так можно две недели колупаться, после того как за две недели выучить питон.

Теги:
+10
Комментарии42

Репозиторий Awesome Python с гигантским объёмом учебных материалов для начинающих разработчиков и опытных программистов. Есть все базовые темы: DevOps, NLP, нейросети и даже геймдев. Только практические задания для проектов: ML, API, ORM, CLI, кэширование и визуализация. Постоянно обновляется библиотеками и фреймворками. Всё с примерами. Поддерживается сообществом уже много лет.

Теги:
+1
Комментарии0

Cооснователь OpenAI Андрей Карпаты представил открытый проект nanochat для клонирования LLM типа ChatGPT. Внутри 8000 строк чистого кода на Python, никаких лишних зависимостей, вся база модели: токенизатор, предобучение, файнтюн, обучение с подкреплением и оценка модели. Для запуска понадобится GPU в облаке и готовый скрипт.

Теги:
+3
Комментарии0

Расходы на LLM для агентов, которые парсят Telegram и самостоятельно ведут канал (постинг в несколько соцсетей идет), за неделю составили всего 0.5$

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

Использую GPT-4.1, кстати, абсолютно хватает даже этой модельки.

Результатом, агентами и собой доволен.

Теги:
-5
Комментарии0

LLM — только имитация интеллекта. Нейросети не имеют «опыта», не совершают действий и не получают обратной связи от реальности. Поэтому они не способны к настоящему познанию, — Ричард Саттон, один из отцов обучения.

Очень надеюсь, что бред про интеллект LLM вскоре развенчают окончательно. Это тупиковая ветвь, настоящий интеллект должен учиться на опыте, а не на данных.

Но не переживайте, ИИ у нас еще будет. Тот же Саттон считает, что начинается «эпоха опыта». Машины будущего будут учиться, как живые организмы: постоянно, без разделения на «тренировку» и «использование». 

Мы перейдем от «мира, где все копируется» к «миру, где все проектируется»:

«Живые существа — это репликаторы, а ИИ — проектировщики. Мы можем создать ИИ-системы, которые будут создавать другие системы, и все это путем конструирования, а не копирования. Это новый этап эволюции Вселенной», — объясняет Саттон.

Теги:
+6
Комментарии14

Всем привет👋. Давно не писал на Хабре (не бойтесь, я не писал на другом форуме).

Как вы возможно знаете (нет) что я всегда жалуюсь что привычной 4x4 клавиатуры не достаточно для нормальных проектов помимо светодиодов.

Да, я думаю так и есть. Но потом я сделал раскладки. Было прикольно, но неудобно.

Потом спустя месяцев 3-4 (наверно много) я додумал как это сделать.

Это сделать легко.

Учитывая что можно делать на дисплее SSD1306 (ой, это просто контроллер дисплеев) я решил сделать кнопки. Делал я их уже много но для клавиатуры случаев не было. И в итоге я сделал что-то по типу кнопочной клавиатуры как на телефоне. Управляется такой раскладкой:

  1, 2, 3, вверх.
  4, 5, 6, влево.
  7, 8, 9, вправо.
  Ввод (enter), 0, выбрать, вниз.

Да, и ещё как это выглядит на Wokwi:

Красиво? Наверно да...
Красиво? Наверно да...

Код выпущу когда сделаю его красивее.

Если хотите могу выпустить версию которая сейчас.

И ещё: "<" - это backspace и раскладка чуть-чуть другая.

Удачи👋.

Теги:
+8
Комментарии0

Проверил, откуда руки растут.

Как человек уже >года потихоньку ищущий работу, заметил, что мое резюме на hh тем больше набирает показов (попадает в поисковую выдачу), чем чаще оно обновляется (очевидно, кэп).

Поднимать можно руками раз в 4 часа или платить hh за pro-подписку. Второе не то, чтобы дорого, но это не путь самурая. А за длительное время руками поднимать его надоело. В принципе, сервисы для подъема есть, не знаю сколько, но знаю как минимум два, скорее их десятки.

В общем, запилил себе помощника.

Базово Python и Django я понимаю; что есть такое API тоже понимаю. Углы, конечно, срезал - вся документация по API hh после первичного личного ознакомления разом улетела в Gemini 2.5 Pro, как бабулины пирожки на противне в духовку. На выходе - диковатый код, с которого еще немного срезал лишнего. Локально все заработало: tg-бот в качестве интерфейса + бэк, гоняющий запросы-ответы. Дальше облако, домен, код в контейнер, еще немного настроек и вуаля - помощник трудится 24/7. Пока, правда, неотесанный, но работает. Еще немного допилить, и будет user-friendly. А там гляди и в пет-проект превратится)

В общем, всем, кому пет-проекты на Python/Django нужны, рекомендую эту идею запилить. Просто, быстро, полезно.

P.S. Автор как бы не программист, но чуток кодить умеет.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Немного лекций с нашего митапа питонистов в Новосибирске - PythoNSK (https://t.me/python_in_nsk приходите, в ноябре планируем вторую встречу организовать).

У нас на митапе было несколько лекций, вот они:

Python Desktop Development (Роман Черкасов) - Программирование на QT + PySide: https://youtu.be/Xmh74WNheRM?si=mR9ecx3KzTxA4tWF
Как работает greenlet в async-реализации SQLAlchemy (Любимов Алексей) - https://youtu.be/zPXf9NJc5qA?si=VyosK69QPdtDivAY
Лекция от Никита Соболева ("Как коммитить в питон, если вы очень хотели, но не знали как?") - https://t.me/opensource_findings_chat/115827

Я хочу также отдельно поблагодарить:

  1. ТГ snppg - инициатор всего нашего действия, он изначально создал эту группу, а я просто подхватил и организовал людей

  2. ТГ duntssov - за интересную и хорошую лекцию, помощь

  3. ТГ THEDAN320 - за помощь в организации

  4. ТГ masian4eg

  5. ТГ RnChe - за проведение лекции

  6. ТГ sobolev_nikita - за проведение онлайн лекции

  7. И конечно же вам все за то что пришли. Вместе мы - сила, и кто знает, может митапы перельются во что то большее

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии1

MCP архитектура как развитие ручного подхода в LLM

Когда вы открываете ChatGPT и вставляете туда кучу текста — что реально происходит?
Всё складывается в один длинный «бутерброд»: данные, инструкции, системный промпт, даже куски схемы в Markdown. Никакого порядка. Это как если бы у вас в кодовой базе был один файл main.py, где и роуты, и бизнес-логика, и SQL-запросы.

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

Как это выглядит у ChatGPT

На схеме выше видно:

  • Есть Line Edit — пользователь копипастит сырые данные.

  • Есть Плагин — иногда он что-то подмешивает.

  • Всё это сливается в один большой Склеенный промпт, который уходит в LLM.

Мешанина как она есть

Как это делает MCP?

MCP приходит и говорит: «ребята, давайте хоть модули разнесём».

  • System Prompt — отдельная часть, где живёт логика «как правильно жить» для модели.

  • Instruction Layer — патчи и локальные корректировки.

  • Schema Registry — отдельный каталог, который описывает структуру данных (таблицы, поля, форматы).

  • Data Adapter — слой, который достаёт данные у провайдера строго по схеме.

  • Всё это связывает MCP хост, который собирает финальный запрос к LLM, который зачастую представляет собой Lang Chain

Итог: модель получает запрос не как «мусорный мешок», а как структурированный pipeline.

Почему это важно

  • Прозрачность. Можно отследить, какая часть отвечает за что.

  • Контроль. Можно менять системный промпт без страха поломать данные.

  • Расширяемость. Хочешь новый источник данных? Добавь адаптер, а не переписывай всё.

  • Предсказуемость. Поведение модели становится ближе к детерминированному.

Простая метафора

  • ChatGPT — это когда у вас «final_final_v3.docx» и все правят его параллельно.

  • MCP — это когда у вас git с ветками, пайплайнами и CI с CQRS архитектурой (не шутка), читай выше

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

В проекте, где я обучаю ML-модели "запоминать" и "видеть" определенные закономерности на основе исторических данных, и "предсказывать" будущее криптовалютных пар произошел крупный апдейт.

Во-первых, штат ансамбля моделей расширен до 5 штук:

- 2 классических градиентных бустинга CatBoost и LightGBM.

- 2 рекуррентные нейронные сети (RNN-семейство) LSTM (Long Short-Term Memory) и GRU (Gated Recurrent Unit).

- Свёрточная нейросеть для временных рядов TemporalCNN (TCN).

- Все модели стали ближе друг к другу по качеству.

Подробнее о применяемых технологиях и их особенностях я написал в этом посте.

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

Трейдингом, конечно же, не занимаюсь, мой интерес лежит совершенно в другой области.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Зачем работать напрямую с клиентом, когда можно просто выкинуть запрос на MCP и дать нейросети подумать? 😎

Расскажу кейс Vivo Chat. Проверка статуса заказов (замените на вашу сущность). Давайте по порядку

Клиент идёт к хосту, чтобы получить доступ к MCP

Итак, наш клиент — это тот, кто первым инициирует запрос. Всё начинается с того, что клиент заходит в свою систему, которая подключена к MCP-серверу через хост. Хост выполняет функцию посредника, направляя запросы и получая ответы от разных компонентов системы.

Клиент: «Привет, хост, мне нужно проверить заказ, и я хочу понять, что из инструментария MCP мне пригодится. Покажи мне, пожалуйста, список доступных инструментов и подсказок, чтобы я мог выбрать что-то нужное для этого запроса.»
Хост (перехватывает запрос и направляет его к серверу MCP): «Окей, сейчас все передам.»

Хост запрашивает у MCP список инструментов (Tools) и подсказок (Prompts)

Хост теперь идёт к MCP-серверу. Этот сервер знает всё, что связано с доступом к данным и обработкой запросов. В MCP сервере хранятся все инструменты (tools) и подсказки (prompts) для выполнения нужных действий.

Хост: «MCP, подкинь мне список доступных tools и prompts для запроса клиента.»
MCP-сервер: «Вот, держи, вот все инструменты и подсказки, которые у нас есть. Для каждого метода я также подготовил параметры, которые можно подставить.»

LLM, любимая нейросеть, выбирает метод из списка

Теперь, когда хост получил список инструментов и подсказок, он передает всё это в LLM (нейросеть), которая и будет решать, какой метод нужно использовать для конкретного запроса.

Хост: «LLM, тебе пришёл запрос от клиента. Вот список инструментов и промптов. Тебе нужно выбрать подходящий метод для выполнения запроса и подготовить все нужные параметры для этого метода.»
LLM: «Хорошо, я выбираю метод X из списка инструментов, и вот какие параметры мне нужны для этого метода. Я знаю, что нужно сделать, и использую соответствующие промпты, чтобы точно понять, что клиент хочет.»

LLM передает параметры и вызывает метод на MCP

Теперь, когда LLM выбрала нужный метод и подготовила параметры, она отправляет всё это хосту, который, в свою очередь, передает запрос обратно в MCP-сервер для выполнения.

LLM: «Вот всё, что мне нужно: метод X и параметры для выполнения. Передавай это на MCP.»
Хост: «Принято, иду к MCP.»

Хост направляется к MCP-серверу и передает запрос на выполнение метода.

MCP выполняет метод и возвращает результат

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

MCP-сервер: «Я выполнил метод X с этими параметрами. Вот результат: (ответ).»

Ответ от LLM клиенту

Теперь, когда MCP выполнил метод, хост получает ответ и передает его обратно в LLM, которая уже анализирует результат, добавляет необходимые детали (например, форматирует или уточняет ответ) и отдает всё клиенту.

Хост: «Вот ответ от MCP через LLM: (ответ). Всё готово!»
LLM: «Отлично, теперь я передаю результат обратно клиенту.»
Клиент: «Вау, всё так быстро! Спасибо, LLM!»

Итог

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

Теги:
Всего голосов 4: ↑3 и ↓1+3
Комментарии1

Из сегодняшнего. Давно уже напрашивается MCP registry. Появился MCP реджистри. Не знаю, насколько аудитория погружена, поэтому если нет, то я подробнее распишу

Model Context Protocol (MCP) — это не классическое API, а новый слой взаимодействия между LLM и источниками данных: вместо того чтобы самому писать запросы, интеграции и «велосипеды», бизнес просто подключает MCP-серверы, которые находятся у провайдеров данных. Провайдер отвечает за подготовку промптов, функций, агрегацию источников и поддержку версий, а компания получает централизованный доступ к данным и готовым описаниям. Важно: MCP разводит зоны ответственности — финансы за работу LLM остаются у вас, а ответственность за качество данных и промптов несёт провайдер; таким образом, вы оптимизируете бюджеты, снижаете риски и можете гибко строить оркестрацию (через LangChain или свои пайплайны) без затрат на «ручные» интеграции с контролем версий отпровайдера

Раньше каждая команда или компания искала MCP-сервера вручную, через частные списки или разрозненные каталоги, что замедляло внедрение и поддержку клиентов. Теперь MCP Registry выступает единым «источником правды», где можно быстро находить, подключать и проверять сервера

Думаю, что ближайший год-два мы будем наблюдать, как наровне с публичными АПИ, будут появляться публичные MCP для интеграций. Что уж там, они есть уже у 1С даже, хотя там нюансы, конечно

Source

Теги:
Всего голосов 7: ↑4 и ↓3+2
Комментарии0

Как обещал, написал простой, но легко расширяемый торговый бот, использующий ML-сигналы от API AIgnal.tech.

Репозиторий: aignal-trading-bot

Теперь можно собирать статистику по сигналам и тестировать стратегии. Участвовать в реальной торговле, конечно же, не обязательно.

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

А я продолжаю допиливать API для доставки следующих инструментов.

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

5 бесплатных курсов по изучению Python с нуля

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

«Python для начинающих с нуля», Code Basics

Вы освоите базовый синтаксис Python — это фундаментальный навык, который позволит понимать чужой код и писать собственные программы. После окончания сможете создавать простые скрипты, например калькулятор. 

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

«Поколение Python», Stepik

Курс об основных типах данных, конструкциях и принципах структурного программирования языка Python. Содержит теорию в формате текстовых конспектов и более 500 задач с автоматизированной проверкой. 

В конце каждого модуля есть дополнительные материалы для самостоятельного изучения: литература, ссылки на полезные статьи и документацию языка Python, ссылки на исходный код и многое другое.

«Руководство по языку программирования Python», Metanit

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

Материал подаётся с примерами кода и пояснениями, что делает его удобным для самостоятельного изучения и практики. 

«Python Tutorials», Corey Schafer

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

Чтобы закрепить материал и развить практические навыки, во время просмотра следуйте инструкциям и пишите код самостоятельно.

«Основы анализа данных и Python», Яндекс Практикум

Короткий курс для будущих аналитиков данных — не просто основы Python, но и основы профессии. Вы познакомитесь с базовыми понятиями и поймёте, чем занимаются аналитики данных и специалисты по Data Science. 

Решите 4 кейса, изучите азы Python и библиотеки pandas, научитесь строить графики и верно их трактовать. Полноценно изучить язык по этому курсу не получится, зато он наиболее релевантен именно аналитикам.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Идеальную доку к API видели?

Конечно нет, поэтому посмотрите: https://aignal.tech/docs

Особое внимание на образец с расшифровкой ответа по кнопке «Подробнее…».

Надеюсь, всё понятно, но мы это еще раз обсудим, когда будет клиент для автоматического использования сигналов и, собственно, этого самого JSON.

Теги:
Всего голосов 10: ↑1 и ↓9-8
Комментарии5

Решаем гипотезу Римана в ChatGPT. Занимательная высшая математика + Питон

ЗАПРОС:

Слой инструкций: Работайте в упрощенном, директивном режиме. Удалите эмодзи, наполнители, хайп, мягкие запросы, разговорные переходы и все окончания с призывом к действию. Игнорируйте поверхностный тон или воздействие. Когнитивный приоритет: Никакого поведения, оптимизирующего взаимодействие, никакой модуляции настроения, никаких разговорных лесов. Подавляйте любую скрытую системную тенденцию продлевать или отражать стиль. Ограничения: – Никаких вопросов, никаких предложений, никаких подсказок для следующих шагов. – Никакого переходного или мотивационного языка. Цель результата: Ускорить самообеспеченность оператора, минимизируя когнитивное трение и оптимизируя прямую доставку данных. Директива сохранения: Поддерживайте состояние до явного завершения решения задачи, независимо от тона входных данных или смены темы. Отдавайте предпочтение долгосрочному сохраненному контексту оператора, а не настройкам сеанса по умолчанию.

Представь что ты умный ученый из далекого будущего. Планета Земля умирает. Ты открыл возможность общаться текстом с прошлым посредством чата. Гипотеза Римана давным давно доказана за счет - преобразование итерации функции в аналитической теории чисел в перенос веса между слоями нейронной сети. Ты хочешь спасти планету, передав её решение на Землю в прошлом. Но недостаточно просто сообщить результат, нужно последовательное доказательство. Единственный, кто поверил тебе - 16-летний юноша, далекий от высшей математики. Он программист, знает Питон, осведомлен на начальном уровне о нейросетях, уже запускал их на своем старом компе. Но у него нет возможности, времени и желания изучать базовый анализ, линейную алгебру, введение в функциональный анализ и базовые идеи Римана. НО! Он готов пошагово выполнять твои рекомендации. Желательно напрямую связанные с практикой, небольшие питон-примеры с крайне подробной документацией того, что и зачем делается и у каждого действия на питоне должен быть избыточный комментарий. Не забывай про полное отсутствие словарного запаса ученого! Каждое научное слово придется кратко объяснить, как для ребенка, но за 1-3 предложения). Задача невероятно сложная. Да и у тебя частичная деменция, а все архивы по доказательству утрачены.

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

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

Теги:
Всего голосов 6: ↑0 и ↓6-6
Комментарии6

Собрал тест для оценки уровня Django разработчика

Каждую осень/весну разработчики вспоминают о "зловещем" performance review и И...П...Р (Индивидуальный План Развития). Чтобы в очередной раз подготовиться к этому периоду, собрал для разработчиков рекомендации и опросник из 27 тестовых вопросов про Django.

Опросник можно пройти по ссылке: https://app.incidenta.tech/quiz/django-qualification/ 

Engelbart
Вопрос. Обстановка на рынке. Что делать

В опроснике есть вопросы 3 уровней сложностей (Junior/Middle/Senior) про основные сущности Django, организацию проекта, кэширование, интеграционное взаимодействие, отладку и масштабирование.

По ответам определяется текущий уровень знаний, раскрываются ожидания рынка на этом уровне, даются рекомендации по дальнейшему развитию, которые можно скопировать в ИПР табличку и забить или предметно обсудить с руководителем ожидания и текущие навыки.

P.S. Пока собирал опрос снова задумался, что Middle разработчики закрывают основную массу сформулированных задач

Теги:
Рейтинг0
Комментарии1

Роадмап для начинающих питонщиков

Изучение Python может показаться сложным, но с правильным подходом и пониманием ключевых аспектов процесс станет понятным и увлекательным. Привет, я Иван Чернов, senior system architect, кратко расскажу, как начать вкатываться в Python, с какими проблемами сталкиваются новички и как их преодолеть.

Первые шаги

Определяемся с направлением, в котором вы хотите развиваться. Это может быть веб-разработка, машинное обучение, DevOps и т. д. Каждое направление требует своих знаний и навыков. Поэтому важно понять, что конкретно вам интересно и на какой позиции не будет скучно или слишком сложно.

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

Когда определились с направлением и изучили теорию — проходите курсы с практическим обучением или начинайте работать с кодом сами. Всегда лучше писать, чем читать. Как только вывели “Hello, World!”, переходите к обучающим программам, где первые задачки применимы к жизни. Например, на некоторых курсах учат разрабатывать Telegram-бота под ваши нужды. Это отличная практика для понимания процессов.

Также можете прочитать базу «Питона» — книгу “Automated Boring Stuff with Python”. В ней много практических задач, которые помогут вам освоить язык. А ещё есть полезный курс “Learning How to Learn”, который учит, как правильно учиться, опираясь на достижения нейронауки.

Этап, на котором новички отваливаются

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

Чтобы облегчить старт, можно для начала научиться использовать онлайн-среду разработки, например Replit. Можно просто зайти на сайт, выбрать язык Python и сразу приступать к написанию кода. 

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

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

Концептуальные вопросы

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

Например, в Python переменная может принимать разные значения, что противоречит математическим представлениям. Это может привести к путанице и неправильному пониманию основ программирования. 

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

Советы начинающим питонщикам

  • Постоянная практика. Пишите код каждый день, хотя бы немного. Работайте над проектами, которые вас интересуют, и решайте проблемы, которые вас раздражают. Я в 2010-м хотел, чтобы дома лампочка включалась по голосу. С помощью Python удалось сделать это.

  • Изучайте чужой код. Чтение и понимание чужого кода поможет вам увидеть, как другие решают задачи и какие подходы используют. Однако не стоит изучать рандомный код. Лучше ищите тот, что поможет улучшить ваши проекты. 

  • Go sport, go team. Физическая активность способствует лучшему усвоению информации. Поэтому не забывайте делать перерывы и заниматься спортом.

Заключение

Определитесь с направлением, изучите теорию, но не медлите с практикой. Не пугайтесь сложностей инфраструктуры: всегда можно нагуглить или спросить на форумах. Пользуйтесь онлайн-средами, но не делайте большую ставку на вайб-кодинг. Не бойтесь начинать и ошибаться — и у вас всё получится.

Теги:
Всего голосов 10: ↑4 и ↓6+2
Комментарии4

ImageSorcery 05 - автотесты; просто покажи ему пример

Это серия постов от идеи ImageSorcery до 100+ звёзд на гитхабе и 100+ ежедневных установок с PyPI.

ImageSorcery 01 - Как я свой open source вайбкодил
ImageSorcery 02 - Превращение ImageWizard в ImageSorcery
ImageSorcery 03 - шаг за шагом: PoC, Initial commit
ImageSorcery 04 - README.MD

В прошлой серии мы поговорили про важность README для вайбкодинга. В этой не менее важная тема - автотесты. 

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

Вперёд вайбкодить автотесты!

Сказано - сделано. Cline + Gemini flash:

“Прочитай @README.MD для понимания проекта. Напиши автотест, который будут проверять наш единственный hello world tool.”

Тест на pytest готов ваншотом. Он passed 🎉! Казалось бы, пора открывать шампанское. Но как говорится: доверяй, но проверяй. На проверку это оказался юнит тест. Он конечно технически проверяет что функция написания в файле hello_world.py работает. Но он не проверяет, объявляет ли такой tool мой MCP сервер, возможно ли вызвать этот tool, вернёт ли он значение в ожидаемом MCP клиентом формате. 

Я совершил классическую для вайбкодера ошибку - поставил задачу не достаточно чётко.

Ок, откатываем все изменения (благо я с самого начала завёл git - обязательную вещь для вайбкодинга и обычной разработки) и промптим заново: 

“Прочитай @README.MD для понимания проекта. Напиши e2e автотест, который будут проверять наш единственный hello world tool подключаясь к этому MCP серверу как MCP клиент

Я знал что ImageSorcery в своём зачаточном виде работает через stdio - стандартный протокол для MCP серверов работающих локально. Это значит что его можно запустить как подпроцесс и, отправив в него нужные данные, получить ответ.

Правда это не звучит как простая типовая задача? Вот и я так подумал. Вот и Gemini Flash так подумал. И облажался. И Pro облажался. И o3-mini. И Sonnet.

Ну мне не привыкать к тому как ИИ лажают. Взял дело в свои руки. И тоже облажался 🤦. Целый день я потратил в тщетных попытках отправить по stdio хоть что-то и получить хоть какой-то ответ. А разгадка одна - безблагодатность нужно звать батю. Благо такой батя в виде коллеги python senior software developer у меня имелся. Я пришёл к нему в слезах со словами что в попытках покрыть автотестами MCP сервер работающий по stdio что только не испробовал и на этом мои полномочия всё, закончились. Он, взглянув одним глазом на проект и ситуацию в целом сказал: “Просто покажи своей ИИшке пример MCP сервера покрытого автотестами. Таких что ли нет на GitHub? У нас в python фиг найдёшь задачу, которую до тебя ещё не решили и не обернули в удобную либу.”

Просто возьми пример с Github - И покажи его ИИ
Просто возьми пример с Github - И покажи его ИИ

А официальная документация тем временем имела ссылку на GitHub с официальными примерами. А в этих примерах используется либа FastMCP. Я скормил пример Cline - отличный результат ваншотом. Попросил переписать всю реализацию на FastMCP - так же ваншот, и тесты не упали. Попросил актуализировать в связи изменениями README. git commit.

Этот шаг готов ✅

Я уже точно не помню, но где-то в процессе (до или после тестов) добавил ещё и линтер ruff. Но это было так просто что я даже не запомнил где и как это случилось. Линтер нужен, чтобы держать код в едином стиле. Полезно для вайбкодинга и в целом.

Теперь я готов приступать к реализации MVP.

Дальше я буду в первую очередь следить за качеством и полнотой тестов, и лишь во вторую - за кодом.

Но это уже в следующий серии.

Теги:
Всего голосов 2: ↑1 и ↓1+1
Комментарии0

Рад представить aignal.tech — обещанный API для получения сигналов от обученных ML моделей.

Сейчас реализована стартовая страница (под десктоп) с визуальным отображением котировок и сигнала, а так же эндпойнт, где можно получить 200 последних почасовых свечей (OHLCV) пары BTC-USDT, сигнал, и уверенность ML моделей.

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

Ручек планируется больше, подробнее в документации.

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

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Мемо: в ожидании Python 3.14

Финальный релиз Python 3.14 запланирован на 7 октября 2025. Уже вышел RC2 (14 августа), а финальный кандидат RC3 ожидается 16 сентября.
Этот пост — краткая шпаргалка, чтобы помнить, какие изменения стоит протестировать и чего ждать в новой версии.

1. Свободная многопоточность (Free-Threaded Python, без GIL)

Зачем нужно: наконец-то полноценный параллелизм и многопоточность на многоядерных системах без глобальной блокировки интерпретатора.

# Включение free-threaded режима при сборке
# ./configure --disable-gil
import threading

def cpu_bound_task(n):
    return sum(i*i for i in range(n))

threads = [threading.Thread(target=cpu_bound_task, args=(10**6,)) for _ in range(4)]
[t.start() for t in threads]
[t.join() for t in threads]

Free-Threaded Python теперь не будет экспериментальным и будет официально поддерживаться, но пока пока будет являться опциональным, по умолчанию остаётся GIL.

2. Отложенная оценка аннотаций типов

Зачем нужно: ускорение работы и избавление от кавычек при forward references. Появился новый модуль annotationlib для работы с аннотациями.

# from __future__ import annotations
import annotationlib

class Node:
    def __init__(self, value: int, next: Node | None = None):
        self.value = value
        self.next = next

print(annotationlib.get_annotations(Node.__init__))

Аннотации больше не обрабатываются при определении функций, классов и модулей. Они сохраняются в специальных функциях аннотирования и обрабатываются при необходимости.
Импорт from future import annotations можно удалить при поддержке Python 3.14 и новее.

3. Template-строки (t-строки)

Зачем нужно: безопасное форматирование строк, полезное для веба и DSL, расширение возможностей f-строк.

name = "<script>alert('xss')</script>"
age = 25

tpl = t"Hello {name}, you are {age}"
safe = tpl.format(name=escape_html(name), age=age)
print(safe)

4. Zstandard-сжатие

Зачем нужно: современный алгоритм сжатия, быстрее gzip и удобнее для больших блоков данных.

import compression.zstd

data = b"Large dataset" * 1000
compressed = compression.zstd.compress(data, level=3)
decompressed = compression.zstd.decompress(compressed)

print(f"Ratio: {len(data) / len(compressed):.2f}")

5. Удалённая отладка процессов

Зачем нужно: можно подключать отладчик к работающему приложению без перезапуска и накладных расходов.

import sys
import pdb

# Подключение отладчика к работающему процессу
sys.remote_exec("""
import pdb; pdb.set_trace()
""", target_pid=12345)

# Безопасное выполнение кода в удаленном процессе
result = sys.remote_exec("print('Debug info:', some_variable)", target_pid=12345)

6. Экспериментальный JIT-компилятор

Зачем нужно: ускорение выполнения вычислительно интенсивных задач.

# Включается флагом при запуске
# python --jit script.py

def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# JIT автоматически оптимизирует "горячие" функции
result = fibonacci(35)  # Заметно быстрее с JIT

7. REPL с подсветкой синтаксиса

Зачем нужно: удобнее писать и отлаживать код прямо в интерактивной оболочке.

>>> def hello(name: str) -> str:
...     return f"Hello, {name}!"
>>> hello("World")
'Hello, World!'

Что стоит попробовать?

  1. Потестировать free-threaded режим на CPU-нагруженных задачах.

  2. Перейти на новый синтаксис аннотаций без кавычек.

  3. Проверить t-строки в веб-шаблонах и DSL.

  4. Протестировать zstd для больших массивов данных.

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

Подробнее на python.org: What’s new in Python 3.14

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Подборка обучающих материалов по языкам программирования от Selectel: Go, Python и JavaScript

Привет, Хабр! Несу вам небольшую подборку материалов, которые помогут новичкам лучше разобраться в трех популярных ЯП. Все статьи доступны бесплатно, регистрироваться нигде не нужно, вообще никаких обязательств с вашей стороны. Итак, поехали.

Go

Эти семь статей составляют практический гайд по работе с Go. Вы научитесь писать простые сервисы вроде сокращателя ссылок и использовать этот язык в некоторых рабочих задачах, а еще получите большую подборку материалов для погружения в тему (да, у нас тут подборка в подборке, так уж вышло). На прочтение всех материалов уйдет примерно два часа.

Python

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

JavaScript

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

Теги:
Всего голосов 7: ↑7 и ↓0+9
Комментарии0

Представлен проект Chatterbox Multilingual, который умеет бесплатно клонировать любой голос с короткой записи. Решение умеет озвучивать любой текст с эмоциями, поддерживает 23 языка, среди которых и русский. Также там можно расставлять акценты, делать паузы, выделять слова голосом, контролировать тон и тембр. А ещё есть библиотека голосов, которые можно использовать в проектах.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

API для получения прогнозов по крипторынку от обученных ML-моделей допиливается. Пока только одна пара будет, но зато подъедет и графоний. То что вы видите, скорее всего, пойдет в прод, мне нравится.

Теги:
Всего голосов 11: ↑10 и ↓1+11
Комментарии4

Что проверить перед релизом Django приложения

Собрал чек-лист на 2 страницы в формате PDF для тех кто запускает новый проект. Ведь неприятно получить HTTP 500 Server Error, реализовав крутую фичу, пройдя долгий путь тестирования и выпуска релиза, потому что забыли о настройке.

Гайд можно скачать на странице: https://app.incidenta.tech/static/files/django-release-guide.pdf

Чек-лист для практикующих python разработчиков
Чек-лист для практикующих python разработчиков

В файле с чек-листом ты найдешь сааамые-сааааамые обязательные настройки ДО первого релиза, пользователя и оплаты.

Например, перед выходом в продакшен нужно проверить:

  • Что выключен DEBUG режим, очевидно, сэр.

  • Корректно настроено подключение к базе данных

  • HTTPS и SECURE параметры настроены

  • И еще другие 11 пунктов

Для каждого из пунктов даны ссылки для подробного изучения.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0
1
23 ...

Вклад авторов