Pull to refresh
16K+
1
Эмиль Мухаметзянов@emil_easy

Внедряю нейросети в малый бизнес

4
Rating
Send message

Своя диктовка для macOS на Deepgram: горячая клавиша, прогретое соединение и три грабли PyObjC

Level of difficultyMedium
Reading time9 min
Reach and readers2.7K

Я диктую по полторы-три минуты подряд: мысль для поста, письмо, правка к задаче. Готовые приложения для голосового ввода на маке я перепробовал, но для длинных кусков они не годились, и в итоге я за пару вечеров собрал свою диктовку на Python. Зажимаешь правый Command, говоришь, отпускаешь, и текст вставляется туда, где стоит курсор. Распознаёт Deepgram.

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

Читать далее

Недельный отчёт по сайту на 200 строках Python: Метрика, Вебмастер и очередь статей в одном сообщении

Level of difficultyMedium
Reading time10 min
Reach and readers6.2K

Раньше раз в неделю я открывал три вкладки: Яндекс.Метрику, Яндекс.Вебмастер и папку с черновиками блога, и в каждой что-нибудь считал в уме. К третьей вкладке я обычно забывал, что искал в первой. В итоге я написал один скрипт без зависимостей, он собирает всё это в одно текстовое сообщение и присылает в Телеграм и на почту. В статье покажу, как он устроен, какие запросы к API делает и что в нём пришлось обходить. Код ниже взят из рабочего скрипта, домен и идентификаторы заменены на заглавные константы и example.com.

Читать далее

Автопостинг в TenChat без API: Playwright, редактор Quill и вставка через ClipboardEvent

Level of difficultyMedium
Reading time10 min
Reach and readers7K

У TenChat нет публичного API для публикации постов. Отложенная публикация в самом сервисе есть только на платном тарифе (на 28.09.2026 от 990 ₽ в месяц), а мне нужен был простой сценарий: раз в день берём следующую статью из блога, собираем из неё короткий пост с обложкой и выкладываем без участия человека. Я написал для этого скрипт на Python и Playwright, он работает на сервере по cron с конца сентября 2026 года. В статье разберу, как скрипт входит в аккаунт без пароля, как заставить редактор Quill принять готовую вёрстку, чем завершились первые недели и какие грабли попались при переезде с ноутбука на сервер.

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

Читать далее

Блог на автопилоте: markdown в статику, выход статьи по дате и пинг в IndexNow только для новых страниц

Level of difficultyMedium
Reading time10 min
Reach and readers5.7K

У меня блог на 78 markdown-файлах, и руками я его не публикую уже больше недели. Статья выходит, когда наступает дата в её шапке: сборщик в тот день включает её в сайт, сервер замечает новую страницу, пишет о ней поисковику и обновляет sitemap с RSS. Ниже разбираю, как это собрано, и три места, где всё ломалось. Фреймворка тут нет, только один Python-файл примерно на 800 строк, bash-скрипт на 30 строк и cron.

Весь код упрощён, домен заменён на example.com, пути на /srv/blog и /srv/www.

Читать далее

Как я вычищал ИИ‑маркеры из текстов Claude: промпт, второй проход и регулярка

Level of difficultyMedium
Reading time11 min
Reach and readers8.8K

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

Читать далее

Information

Rating
1,268-th
Registered
Activity

Specialization

Зерокодер, Промпт-инженер
Средний
Python
Linux
Docker
Nginx
Bash