Media is too big
VIEW IN TELEGRAM
Код красивой "залипалки" (бесконечная анимация), которые часто размещают под нарезками из фильмов/видео в ТикТок\Shorts.
Скачать.
Если есть идеи как сделать лучше - пишите.
Скачать.
Если есть идеи как сделать лучше - пишите.
🤣31❤10👍8🤬3😡2
"Технический долг" 💱 - это довольно популярный термин среди разработчиков. Хочу рассказать вам, что они значит и чем опасно.
Представь, что ты взял быстрый кредит на разработку, но проценты по нему - это замедление проекта и баги. 🐞 Это и есть технический долг.
🤷♂️ Почему он вообще появляется? Причины могут быть разными:
- Горящие дедлайны: «нам нужно запустить это вчера!»;
- Недостаток опыта: когда разработчик просто не знает лучшего решения;
- Экономия на качестве: «пока и так сойдет, потом переделаем»;
- Стремление к быстрому результату: когда скорость важнее чистоты кода.
Каждый такой компромисс - это еще один «кредит».
👀 Главная опасность техдолга в том, что его «проценты» растут незаметно. Сначала ты просто тратишь чуть больше времени на добавление новых функций. Потом исправление одного бага порождает три новых. Мотивация команды или твоя собственная падает, потому что работать со сложным и запутанным кодом - настоящее мучение. В итоге, проект замедляется до полной остановки, а на рефакторинг уходят месяцы.
Представь, что ты взял быстрый кредит на разработку, но проценты по нему - это замедление проекта и баги. 🐞 Это и есть технический долг.
Технический долг - это метафора для всех неоптимальных или поспешных решений в коде, которые ты принимаешь сегодня, чтобы быстрее выпустить фичу. Ты как бы «берешь в долг» у будущего качества продукта. Это может быть закомментированный кусок кода, отсутствие тестов или использование устаревшей библиотеки. Кажется, что это мелочь, но со временем такие «долги» накапливаются.
- Горящие дедлайны: «нам нужно запустить это вчера!»;
- Недостаток опыта: когда разработчик просто не знает лучшего решения;
- Экономия на качестве: «пока и так сойдет, потом переделаем»;
- Стремление к быстрому результату: когда скорость важнее чистоты кода.
Каждый такой компромисс - это еще один «кредит».
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬35🔥7🤣5❤2
По сути — настоящий швейцарский нож для администратора:
🛡 Фильтрует спам, нежелательные ссылки, упоминания и стоп-слова. Умеет автоматически выдавать предупреждения и банить нарушителей. Главное- устранил нюанс, где можно было редактировать сообщения и после редакции бот не реагировал.
⚙️ Настраивайте стоп-слова, исключения, разрешенные ссылки, триггеры для автоответов и многое другое через админку.
🛡 Устали от спам-ботов? Включите проверку по CAPTCHA для новых участников! Пользователю нужно будет ввести символы в личном чате с ботом, чтобы получить доступ к группе. Функцию можно включать и выключать глобально.
📬 Пользователи могут легко связаться с вами по разным темам (реклама, техподдержка, сотрудничество) или предложить новость для вашего канала.
✍️ Публикуйте посты в свои каналы прямо через бота, с inline-кнопками!
📊 Получайте периодические отчеты о работе бота и статистику модерации.
💰 В боте есть удобное меню для тех, кто захочет поддержать админа и его работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔47🤬25🔥12❤11👍4💯4😱2❤🔥1
Так вот, полный список команд с объяснениями (Linux!!!):
1) Установка и проверка:
# Обновляем список пакетов
sudo apt update
# Устанавливаем Docker
sudo apt install -y docker.io
# Запускаем и добавляем Docker в автозагрузку
sudo systemctl start docker
sudo systemctl enable docker
# Устанавливаем Docker Compose
sudo apt install -y docker-compose
Чтобы проверить, что все сделали четко:
docker --version
docker-compose --version
Должно показать версии Docker и Docker-compose.
2) Разворачивание, запуск контейнера.
После того, как вы установили это все (делать нужно 1 раз(!!!)), нужно перейти в директорию с файлами проекта (где лежат Dockerfile, docker-compose.yml).
Пример:
cd /root/dialog_bot/
После этого, пишите команду:
sudo docker-compose up --build -d
Если сделали все четко, контейнер соберется и сразу же будет в работе.
Вот что делают "флажки":
- up: Создает и запускает контейнеры.
- --build: Принудительно пересобирает образ перед запуском. Это полезно, если ты внес изменения в Dockerfile или файлы проекта.
- -d: Запускает контейнеры в фоновом (detached) режиме.
Просмотреть логи с контейнера после можно по команде:
sudo docker-compose logs -f
3) А что на Windows?
Чтобы запустить на Win 10, 11, нужно:
1. Перейдите на официальный сайт Docker и скачай установщик для Windows.
2. Установите Docker Desktop:
- Запустите скачанный установщик.
- Следуйте инструкциям на экране. Очень важно: убедитесь, что выбрана опция "Use WSL 2 instead of Hyper-V" (Использовать WSL 2 вместо Hyper-V), если она доступна и твой Windows 10 это поддерживает (версия 2004 и выше, сборка 19041 и - выше). WSL 2 обеспечивает лучшую производительность. Если опции нет или твоя система старее, Docker Desktop может использовать Hyper-V.
- Установка может потребовать включения функций "Контейнеры" и "Подсистема Windows для Linux" (WSL). Установщик обычно предлагает сделать это автоматически или дает инструкции.
3. Запусти Docker Desktop после установки. Иконка кита появится в системном трее. При первом запуске может потребоваться некоторое время на инициализацию. Убедись, что Docker Desktop показывает, что он запущен (иконка кита в трее статична и не анимирована).
Важно: каждый раз, когда захотите собрать контейнер на Win 10, 11, нужно запускать Docker Desktop!
Дальше можете прямо в IDE, в папке с проектом в консоли писать:
docker-compose up --build -d
И все. Команды тут те же, что и на Linux.
Полезно?
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰25🤬12👍7❤6🔥3❤🔥1🤷♂1
И главный вопрос:
Что лучше для автоматизации — использовать готовый инструмент типа n8n или писать все с нуля, то есть заниматься ручной разработкой?
n8n — это платформа для визуальной автоматизации. Вы соединяете кубики-«ноды» (приложения и сервисы) между собой, чтобы они обменивались данными и выполняли задачи без вашего участия. Гибко, наглядно и не всегда требует навыков программирования.
Что же выбрать: n8n или код? 🤔
- Скорость — главный приоритет. Собрать рабочий сценарий в n8n можно за минуты, а не за дни или недели;
- Бюджет ограничен. Использование готовых интеграций и визуального конструктора значительно дешевле, чем оплата часов разработчика;
- Задача типовая. Нужно связать популярные сервисы (Telegram, Google Sheets, CRM, Trello)? В n8n для этого уже все готово;
- Нужна гибкость без хардкора. Вы не программист, но хотите иметь возможность легко менять логику процесса.
- Нужна 100% кастомизация. У вас уникальная бизнес-логика, нестандартные API или требования к интерфейсу;
- Требуется максимальная производительность. Для высоконагруженных систем, обрабатывающих тысячи запросов в секунду, кастомный код, написанный под конкретную задачу, будет эффективнее;
- Интеграция очень специфична. Нужно подключить редкий или внутренний корпоративный софт, для которого нет готовых «нод»;
- Полный контроль над кодом и окружением является критически важным в серьезных проектах.
Итог таков: не стоит противопоставлять эти два подхода. Это инструменты для разных задач. Для 60% стандартных кейсов автоматизации n8n будет быстрее, дешевле и проще в поддержке. Например, бот для записи на маникюр, в больницу и т.д.
Для масштабных же проектов, рассчитанных на тысячи пользователей, n8n - это шутка. Где нужна уникальная логика и высокая производительность, — без ручной разработки не обойтись.
#automation #n8n #dev #nocode #tools
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬22🔥10❤6👍1😡1
import qrcode
from PIL import Image
def generate_qr_code(data, filename="qr_code.png"):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
return filename
if __name__ == "__main__":
print("Генератор QR-кодов")
input_data = input("Введите текст или ссылку для кодирования в QR-код: ")
output_filename = input("Введите имя файла для сохранения QR-кода (например, my_qr.png) или нажмите Enter для 'qr_code.png': ")
if not output_filename:
output_filename = "qr_code.png"
elif not output_filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
output_filename += ".png"
saved_file = generate_qr_code(input_data, output_filename)
print(f"QR-код успешно создан и сохранен как '{saved_file}'")
Ниже зависимости:
pip install qrcode Pillow
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰33🤬16❤6🍌6👍3🤣3❤🔥1🙏1
Camera.rar
16.3 KB
В ТикТоке еще не показывал, сначала решил кинуть сюда. Интересный, как мне кажется, проект, который делает из Вашей веб-камеры камеру видео-наблюдения, которая отправляет уведомления в Телеграм.
Применение придумаете сами. Хочу сюда еще прицепить распознавание лиц. Тогда можно будет цеплять к электронному замку из Али и вешать в подъезде, чтобы открывать двери в квартиру. Но пока так.
В боте через инлайн-кнопки можно включать/выключать мониторинг, а также выбирать режим: фото или видео. Фото делает фото с камеры раз в 30 секунд, если обнаруежает в кадре человека/собаку (у меня есть пес, поэтому прицепил для прикола). Правда, собака распознается по принципу "не человек = пес". Точное определение можно докрутить, если нужно. Видео же пишется с момента, как человек попал в кадр, до момента как вышел. Само собой, распознается количество людей/собак в кадре.
Берите, допиливайте под свои нужды, знакомьтесь :)
Применение придумаете сами. Хочу сюда еще прицепить распознавание лиц. Тогда можно будет цеплять к электронному замку из Али и вешать в подъезде, чтобы открывать двери в квартиру. Но пока так.
В боте через инлайн-кнопки можно включать/выключать мониторинг, а также выбирать режим: фото или видео. Фото делает фото с камеры раз в 30 секунд, если обнаруежает в кадре человека/собаку (у меня есть пес, поэтому прицепил для прикола). Правда, собака распознается по принципу "не человек = пес". Точное определение можно докрутить, если нужно. Видео же пишется с момента, как человек попал в кадр, до момента как вышел. Само собой, распознается количество людей/собак в кадре.
Берите, допиливайте под свои нужды, знакомьтесь :)
👏38🤬19🔥9❤5✍1👍1
Парсить сайты на Selenium уже не считается практичным. Он медленней конкурентов. Единственное преимущество - это большое сообщество, которое делится опытом и поможет найти решение любой проблемы, практически. Но мой опыт показывает, что условный Playwright или DrissionPage быстрее, лучше справляются с задачами, где нужно "маскировать" автоматизацию.
Чем SeleniumBase лучше?
- простой синтаксис;
- встроенная защита от бот-детекторов;
- автоматическое управление драйверами - не нужно вручную скачивать и прописывать пути к chromedriver;
- "умные" ожидания: Скрипт не упадет, если элемент не успел прогрузиться. SeleniumBase автоматически дождется его появления перед тем, как выполнить действие. Это делает парсеры намного стабильнее.
По сути, он упрощает код и помогает обходить защиту там, где обычный Selenium уже не справляется. Вот такой вот опыт.
P.S. жду стул и микрофон, не могу пока ТТ вести, скоро фулл-комбек. Прямо сегодня утром закрыл 3-х заказчиков, сегодня отпишу еще троим. Жизнь продолжается, по чуть продолжаем работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤30🤬15🔥5❤🔥4🍌1👾1
Media is too big
VIEW IN TELEGRAM
🚀Сверху обработанное, снизу нет. Но разительную разницу можна заметить при просмотре на ПК.
Если интересно - могу дать исходник и обработанный видос отдельно. 😉 (обработанный видос в 8к получился)
Прошу отметить, что исходник специально брал в максимальном качестве этого аниме.
Что, делаем фулл сезон Берсерка? :D Пока поработаю над оптимизацией скорости, уже лучше, чем вчера.
Буквально можно будет за неделю весь сезон "обновить" для просмотра на 4-8к экранах.
Если интересно - могу дать исходник и обработанный видос отдельно. 😉 (обработанный видос в 8к получился)
Прошу отметить, что исходник специально брал в максимальном качестве этого аниме.
Что, делаем фулл сезон Берсерка? :D Пока поработаю над оптимизацией скорости, уже лучше, чем вчера.
Буквально можно будет за неделю весь сезон "обновить" для просмотра на 4-8к экранах.
❤41👍6🤬4⚡3❤🔥2🔥1👏1🙈1
1️⃣ Код без версий. Файлы «main_final_final_really.py» выглядят забавно, пока не надо откатиться на рабочий вариант. Git спасает нервы и проекты.
2️⃣ «Запустилось - значит работает». Отсутствие юнит-тестов делает рефакторинг лотереей, а баги - постоянными спутниками.
3️⃣ Копипаст без понимания. Стек-Оверфлоу (а сейчас - нейросети) решает задачу моментально, но чужой фрагмент приносит чужие же баги и дыры в безопасности.
4️⃣ Преждевременная оптимизация. Тратить часы на микро-ускорение цикла, не измерив, где реально узкое место, - самый быстрый способ потерять мотивацию.
5️⃣ Игнор читаемости. Завтра «temp2» и «x1» забудете даже вы сами. Говорящие имена и чистые функции - не украшение, а страховка.
6️⃣ Страх вопросов. Сеньоры помнят свои первые commit-ы. Чем раньше спросите, тем меньше технического долга наживёте.
7️⃣ Отсутствие системного обучения. Туториалы вдохновляют, но только книги (частный случай) и доки (всегда!) формируют фундамент и учат думать шире конкретного фреймворка.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29🤣4🤬3🔥1😁1🤪1😡1
Camera.rar
16.3 KB
В ТикТоке еще не показывал, сначала решил кинуть сюда. Интересный, как мне кажется, проект, который делает из Вашей веб-камеры камеру видео-наблюдения, которая отправляет уведомления в Телеграм.
Применение придумаете сами. Хочу сюда еще прицепить распознавание лиц. Тогда можно будет цеплять к электронному замку из Али и вешать в подъезде, чтобы открывать двери в квартиру. Но пока так.
В боте через инлайн-кнопки можно включать/выключать мониторинг, а также выбирать режим: фото или видео. Фото делает фото с камеры раз в 30 секунд, если обнаруежает в кадре человека/собаку (у меня есть пес, поэтому прицепил для прикола). Правда, собака распознается по принципу "не человек = пес". Точное определение можно докрутить, если нужно. Видео же пишется с момента, как человек попал в кадр, до момента как вышел. Само собой, распознается количество людей/собак в кадре.
Берите, допиливайте под свои нужды, знакомьтесь :)
Применение придумаете сами. Хочу сюда еще прицепить распознавание лиц. Тогда можно будет цеплять к электронному замку из Али и вешать в подъезде, чтобы открывать двери в квартиру. Но пока так.
В боте через инлайн-кнопки можно включать/выключать мониторинг, а также выбирать режим: фото или видео. Фото делает фото с камеры раз в 30 секунд, если обнаруежает в кадре человека/собаку (у меня есть пес, поэтому прицепил для прикола). Правда, собака распознается по принципу "не человек = пес". Точное определение можно докрутить, если нужно. Видео же пишется с момента, как человек попал в кадр, до момента как вышел. Само собой, распознается количество людей/собак в кадре.
Берите, допиливайте под свои нужды, знакомьтесь :)
😡25❤🔥10🤨7❤4🤬4🔥1🥰1💘1
Этот проект предлагает готовое ("Plug & Play") решение для пользователей Windows, столкнувшихся с проблемами доступа к Discord и YouTube. Мои знакомые рекомендовали как лучший обход из имеющихся (и это не реклама, челы)
Что умеет? 🛠
- восстановление доступа к Discord и YouTube;
- не замедляет другие сервисы;
- использование WinDivert для перехвата и фильтрации сетевого трафика, что и позволяет обходить ограничения;
- в комплекте идут .bat файлы для запуска с разными настройками, управления обходом Cloudflare и службами;
- пользователи могут сами расширять списки адресов для обхода, добавляя их в специальные файлы (list-general.txt, list-discord.txt);
На страничке репозитория есть информация по решению частых проблем. Естественно - фулл бесплатно. Автор старается поддерживать актуальность инструмента.
P.S. не знаю, насколько актуально. Вероятно, все кто хотел обойти - уже обошли. Но на всякий.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤31🤬11😨7👍5❤🔥2💔1🍓1💋1
Время на такой 40-секундный ролик, около 2-х минут. То есть, серию Берсерка за час обработать получится. Если у вас по-более VRAM, и карта ПОТУЖНЕЕ, то и результат будет лучше. У меня 2070 Super.
Как вам результат
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤56🔥17👍6🤬6🗿2🎉1
🚀 Скоро выложу вам ReelsMaker свой (собранный в .exe), с фикшенными багами, редизайном, возможность качать видосы с YouTube для обработки прямо в программе, поддежкой кодеков для обработки через видеокарты AMD/nVidia.
Также добавлена область предпросмотра, чтобы вы могли видеть, какое видео у вас получится в итоге, со всеми эффектами, обрезками, наложенным баннером и далее.
Обновил и темную, и светлую тему - теперь не колхоз.
Еще будет "частная версия", с авто-постингом по расписанию в YouTube, YT-reels, TikTok.
Также добавлена область предпросмотра, чтобы вы могли видеть, какое видео у вас получится в итоге, со всеми эффектами, обрезками, наложенным баннером и далее.
Обновил и темную, и светлую тему - теперь не колхоз.
Еще будет "частная версия", с авто-постингом по расписанию в YouTube, YT-reels, TikTok.
❤64🔥22👍4🤬4👏2❤🔥1💘1
Так вот, полный список команд с объяснениями (Linux!!!):
1) Установка и проверка:
# Обновляем список пакетов
sudo apt update
# Устанавливаем Docker
sudo apt install -y docker.io
# Запускаем и добавляем Docker в автозагрузку
sudo systemctl start docker
sudo systemctl enable docker
# Устанавливаем Docker Compose
sudo apt install -y docker-compose
Чтобы проверить, что все сделали четко:
docker --version
docker-compose --version
Должно показать версии Docker и Docker-compose.
2) Разворачивание, запуск контейнера.
После того, как вы установили это все (делать нужно 1 раз(!!!)), нужно перейти в директорию с файлами проекта (где лежат Dockerfile, docker-compose.yml).
Пример:
cd /root/dialog_bot/
После этого, пишите команду:
sudo docker-compose up --build -d
Если сделали все четко, контейнер соберется и сразу же будет в работе.
Вот что делают "флажки":
- up: Создает и запускает контейнеры.
- --build: Принудительно пересобирает образ перед запуском. Это полезно, если ты внес изменения в Dockerfile или файлы проекта.
- -d: Запускает контейнеры в фоновом (detached) режиме.
Просмотреть логи с контейнера после можно по команде:
sudo docker-compose logs -f
3) А что на Windows?
Чтобы запустить на Win 10, 11, нужно:
1. Перейдите на официальный сайт Docker и скачай установщик для Windows.
2. Установите Docker Desktop:
- Запустите скачанный установщик.
- Следуйте инструкциям на экране. Очень важно: убедитесь, что выбрана опция "Use WSL 2 instead of Hyper-V" (Использовать WSL 2 вместо Hyper-V), если она доступна и твой Windows 10 это поддерживает (версия 2004 и выше, сборка 19041 и - выше). WSL 2 обеспечивает лучшую производительность. Если опции нет или твоя система старее, Docker Desktop может использовать Hyper-V.
- Установка может потребовать включения функций "Контейнеры" и "Подсистема Windows для Linux" (WSL). Установщик обычно предлагает сделать это автоматически или дает инструкции.
3. Запусти Docker Desktop после установки. Иконка кита появится в системном трее. При первом запуске может потребоваться некоторое время на инициализацию. Убедись, что Docker Desktop показывает, что он запущен (иконка кита в трее статична и не анимирована).
Важно: каждый раз, когда захотите собрать контейнер на Win 10, 11, нужно запускать Docker Desktop!
Дальше можете прямо в IDE, в папке с проектом в консоли писать:
docker-compose up --build -d
И все. Команды тут те же, что и на Linux.
Полезно?
Please open Telegram to view this post
VIEW IN TELEGRAM
💋20🔥10🤬5❤1
Для работы использовал FFMPEG.
Как легкий пример для поста выше.
Как легкий пример для поста выше.
import os
import ffmpeg
class VideoToGifConverter:
def __init__(self, source_dir="video", target_dir="gif", frame_rate=2):
self.source_dir = source_dir
self.target_dir = target_dir
self.frame_rate = frame_rate
os.makedirs(self.source_dir, exist_ok=True)
os.makedirs(self.target_dir, exist_ok=True)
def get_video_files(self):
return [
file_name
for file_name in os.listdir(self.source_dir)
if file_name.lower().endswith(".mp4")
]
def convert_videos_to_gif(self):
video_files = self.get_video_files()
for video_file in video_files:
base_name = os.path.splitext(video_file)[0]
gif_file_name = base_name + ".gif"
input_path = os.path.join(self.source_dir, video_file)
output_path = os.path.join(self.target_dir, gif_file_name)
stream = ffmpeg.input(input_path)
stream = stream.filter("fps", fps=self.frame_rate)
stream = ffmpeg.output(stream, output_path)
ffmpeg.run(stream)
def main():
converter = VideoToGifConverter(source_dir="video", target_dir="gif", frame_rate=2)
converter.convert_videos_to_gif()
if __name__ == "__main__":
main()
❤14🤬9😁2👍1
- авто-комент новых видео на указанных каналах;
- учитывается контекст видео, т.к. производится его загрузка и транскрибация;
- учитывается пользовательский промпт - можно рекламировать что угодно;
- мульти-аккаунт;
- поддержка прокси.
P.S. сегодня делаем стрим с отбором заявок, чи шо?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥35❤9🥰3🤬2