— Ты уволен
— Почему?
— Мы оплатили GPT-5, ты больше не нужен.
Вы тоже в ах@е с такого расклада? Учился лет 5, потом столько же батрачил за копейки ради опыта — чтобы тебя заменила еб@чая железяка.
А теперь задумайтесь: нейронки развиваются с бешеной скоростью. Поэтому сейчас как никогда нужны спецы для их обучения.
Чтобы в кратчайшие сроки выйти на уровень элиты и стать топом в сфере — подпишитесь на канал @devsp. Его автор раскрывает неочевидные секреты: как в 3 месяца уместить 6 лет обучения, достойно пройти любое собеседование и что делать, чтобы лучшие компании дрались за вас.
А временами подкидывает крутые вакансии и лайфхаки, после которых вас с руками оторвут даже без опыта.
Это всё равно что встретить Нео и войти в 10% тех, кто сломал систему. Подписывайтесь: @devsp
— Почему?
— Мы оплатили GPT-5, ты больше не нужен.
Вы тоже в ах@е с такого расклада? Учился лет 5, потом столько же батрачил за копейки ради опыта — чтобы тебя заменила еб@чая железяка.
А теперь задумайтесь: нейронки развиваются с бешеной скоростью. Поэтому сейчас как никогда нужны спецы для их обучения.
Чтобы в кратчайшие сроки выйти на уровень элиты и стать топом в сфере — подпишитесь на канал @devsp. Его автор раскрывает неочевидные секреты: как в 3 месяца уместить 6 лет обучения, достойно пройти любое собеседование и что делать, чтобы лучшие компании дрались за вас.
А временами подкидывает крутые вакансии и лайфхаки, после которых вас с руками оторвут даже без опыта.
Это всё равно что встретить Нео и войти в 10% тех, кто сломал систему. Подписывайтесь: @devsp
1😁13❤1
AnomalousLib🟢 Поддержка Python 3.12.10 или новее.🟢 Позволяет генерировать данные с различными типами аномальной диффузии (subdiffusion, superdiffusion и др.).🟢 Встроенные методы статистического анализа (оценка показателей, сравнение моделей) + инференс моделей.🟢 С визуализацией: возможность строить графики траекторий, распределений, оценки отклонения от нормальной диффузии.
pip install anomalouslib
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Подойдёт и новичкам, и тем, кто уже работает с JS и React
На канале Интенсивный JavaScript действующий тимлид и опытный разработчик помогает изучить фронтенд на практических задачах, которые интересно кодить
С 18 октября стартует бесплтаное обучение, где он на практике поможет разобраться во фронтенде: новикам в HTML/CSS и JavaScript, а тем, кто с опытом — React, TypeScript, Next.js
Всего сделаете три проекта:
Обучение подойдёт, даже если у вас нет опыта в программировании — всё объясняют так, чтобы поняла даже ваша бабуля
Если опыт есть — будет проще. Сможете набить руку на React, TS, Next
Что будет кроме уроков:
— пошаговый план изучения всего, что нужно современному фронтендеру
— способы поиска заказов на фрилансе с помощью ИИ
— разыграет годовой доступ к крутому ИИ
— расскажет, как взять первый заказ на фрилансе, если на биржах не получается
Подписывайтесь, чтобы участвовать, осталось 39 мест
Учиться самостоятельно можно бесконечно, если не знать, куда копать. На интенсиве сократите время на поиск информации и получите пошаговый план от разработчика, который нанимает новичков в команду
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
pytrends, flask, openai, requests и др. — взаимодействие с Google Trends API, веб-интерфейс, генерация текста. Нишевый инструмент для маркетологов / предпринимателей: ты вводишь ключевые слова или темы, скрипт берёт тренды из Google Trends, комбинирует их с моделями GPT, и генерирует идеи нишевых подкатегорий, потенциально прибыльных тем или продукты.
👨💻 Пример кода (упрощённая логика):
from pytrends.request import TrendReq
from flask import Flask, request, jsonify
import openai
pytrend = TrendReq()
app = Flask(__name__)
@app.route("/niche", methods=["POST"])
def find_niche():
data = request.json
keywords = data.get("keywords") # список ключевых слов
trends = []
for kw in keywords:
pytrend.build_payload([kw], timeframe="today 12-m")
interest = pytrend.interest_over_time()
trends.append((kw, interest.mean()))
# строим запрос в GPT, чтобы предложил нишевые идеи на основе трендов
prompt = f"Given these keywords and their trends: {trends}, suggest niche ideas."
resp = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role":"user", "content":prompt}]
)
ideas = resp.choices[0].message.content
return jsonify({"ideas": ideas, "trends": trends})
if name == "__main__":
app.run(port=5000)
🟢 Берёт тренды по ключевым словам из Google Trends (pytrends)🟢 Анализирует средние интересы или тренды роста🟢 Отправляет данные + ключевые слова в модель GPT🟢 Получает от GPT идеи ниш, подкатегорий или направлений🟢 Возвращает JSON с предложениями и трендами
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥1😁1
argparse, subprocess, pathlib, fnmatch, uuid, shutil, os, re — всё стандартное.#!/usr/bin/env python3
"""
gitingest.py - Turn any Git repository into a prompt-friendly text and copy to clipboard.
Usage:
python gitingest.py <URL/LOCAL_FOLDER> [options]
Options:
--exclude PATTERN Patterns to exclude (can be used multiple times)
--max-size SIZE Include files under SIZE kb (default: 50kb)
Examples:
python gitingest.py https://github.com/user/repo
python gitingest.py ./local-folder --exclude "*.log" --exclude "tests/*" --max-size 100
"""
import os
import sys
import subprocess
import tempfile
import shutil
import argparse
from pathlib import Path
from fnmatch import fnmatch
import uuid
import re
def clone_repo_if_needed(repo_path_or_url, tmp_dir):
# если передана URL — клонировать, иначе использовать локальный путь
pass
def collect_files(base_path, max_size_kb, exclude_patterns):
# пройтись по базе, собрать пути файлов, которые
# — меньше max_size
# — не соответствуют exclude_patterns
pass
def read_files(paths):
# читать файлы, возможно ограничивать общую длину, фильтры по расширениям
pass
def main():
# парсинг аргументов, клонирование, сбор файлов, вывод в консоль / буфер
pass
🟢 Принимает на вход путь к репозиторию либо URL🟢 Опции: --exclude шаблоны файлов / директорий, --max-size чтобы игнорировать большие файлы🟢 Сбирает содержимое подходящих файлов🟢 Генерирует текстовый вывод — может копировать в clipboard или просто печатать🟢 Удобное для подготовки данных перед аналитикой, обзором репо, работе с AI, чтобы “загрузить” код без лишнего мусора
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3❤1
opencv-python, numpy, click, ffmpegИспользует алгоритмы анализа яркости, цвета и движения для определения точек смены сцен.
from scenedetect import detect, ContentDetector, split_video_ffmpeg
scene_list = detect('input.mp4', ContentDetector())
split_video_ffmpeg('input.mp4', scene_list)
🟢 Анализирует видео и определяет, где происходит смена сцены🟢 Разделяет видео на отдельные файлы по найденным сценам🟢 Поддерживает экспорт списка сцен в CSV, HTML и EDL🟢 Работает как через CLI, так и через Python API
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5
Pillow, numpy, argparse🟠 Загружает изображение любого поддерживаемого формата🟠 Конвертирует в градации серого🟠 Делит изображение на сетку и заменяет среднюю яркость каждой ячейки ASCII‑символом (@, #, . и пр.)🟠 Сохраняет ASCII-арт в файл или выводит на экран🟠 Включает CLI‑интерфейс для настройки ширины и дискреты яркости.
python ascii_art.py --input image.jpg --width 80 --output ascii.txt --detailed
import os
import argparse
from PIL import Image
import numpy as np
GSCALE_SIMPLE = "@%#*+=-:. "
GSCALE_EXTENDED = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~i!lI;:,\"^`'. "
def avg_brightness(tile):
return np.array(tile).mean()
def image_to_ascii(image_path, cols=80, more_levels=False):
image = Image.open(image_path).convert('L')
W, H = image.size
scale = 0.43 # поправка на соотношение символов в терминале
w = W / cols
h = w / scale
rows = int(H / h)
print(f"[ASCII] Рисунок: cols={cols}, rows={rows}")
ascii_img = []
gs = GSCALE_EXTENDED if more_levels else GSCALE_SIMPLE
levels = len(gs)
for row in range(rows):
y1 = int(row * h)
y2 = int((row + 1) * h) if row < rows - 1 else H
line = ""
for col in range(cols):
x1 = int(col * w)
x2 = int((col + 1) * w) if col < cols - 1 else W
tile = image.crop((x1, y1, x2, y2))
brightness = avg_brightness(tile)
idx = int(brightness * (levels - 1) / 255)
line += gs[idx]
ascii_img.append(line)
return ascii_img
def main():
parser = argparse.ArgumentParser(description="ASCII Art Image Converter")
parser.add_argument('--input', required=True, help='Путь к изображению')
parser.add_argument('--width', '-w', type=int, default=80, help='Ширина в символах')
parser.add_argument('--output', '-o', help='Выходной .txt файл (по умолчанию — stdout)')
parser.add_argument('--detailed', action='store_true',
help='Использовать мелкую градацию (GSCALE_EXTENDED)')
args = parser.parse_args()
art = image_to_ascii(args.input, cols=args.width, more_levels=args.detailed)
if args.output:
with open(args.output, 'w', encoding='utf-8') as f:
f.write('\n'.join(art))
print(f"✅ Сохранено в {args.output}")
else:
print()
print('\n'.join(art))
if __name__ == "__main__":
main()
pip install pillow numpy
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤8👍4🔥1
time, csv, datetime, argparseКаждую заданную минуту спрашивает (CLI), чем вы заняты.
Записывает метку времени и описание задачи в CSV.
В конце дня автоматически выводит краткую таблицу: сколько времени ушло на каждую задачу.
Полезно, чтобы увидеть, куда уходит время, и перестать терять минуты зря.
python time_tracker.py --interval 60 --output time_log.csv
import time
import csv
from datetime import datetime
import argparse
from collections import Counter
def track(interval, output):
with open(output, 'a', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
while True:
now = datetime.now()
task = input(f"[{now.strftime('%H:%M')}] Что вы сейчас делаете? ")
writer.writerow([now.isoformat(), task])
if task.lower() in ('выход', 'exit', 'quit'):
break
time.sleep(interval * 60)
def summarize(output):
tasks = []
with open(output, newline='', encoding='utf-8') as f:
for row in csv.reader(f):
if len(row) >= 2:
tasks.append(row[1])
counts = Counter(tasks)
print("⏳ Итоги дня:")
for task, cnt in counts.items():
print(f"{task[:30]:30} — {cnt} отметок")
if __name__ == '__main__':
parser = argparse.ArgumentParser("Hourly Time Tracker")
parser.add_argument("--interval", type=int, default=60, help="Интервал опроса (в минутах)")
parser.add_argument("--output", default="time_log.csv", help="CSV файл для логов")
parser.add_argument("--summary", action="store_true", help="Показать итог за день и выйти")
args = parser.parse_args()
if args.summary:
summarize(args.output)
else:
track(args.interval, args.output)
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥8❤4👍2
intelx 🟠 Поиск в утечках (email, пароли, домены, IP и др.)🟠 Доступ к API IntelligenceX🟠 Получение и скачивание найденных записей
pip install intelx-sdk
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3
pydub, argparse, os, scipy.signal (только если нужен алгоритм кластеризации пауз)🟠 Загружает аудиофайл (.mp3, .wav и др.)🟠 Находит паузы длиннее заданного порога (например, тишина ≥ 2 секунды)🟠 Делит трек на сегменты между этими паузами🟠 Сохраняет каждый сегмент как отдельный файл с порядковым номером🟠 Подходит для подкастов, интервью, лекций — автоматизирует разделение аудио
python split_audio.py --input lecture.mp3 --silence_thresh -40 --min_silence_len 2000 --output segmented/
import os
import argparse
from pydub import AudioSegment
from pydub.silence import detect_silence
def split_on_silence(input_path, silence_thresh=-40, min_silence_len=2000, keep_silence=500, output_dir="segments"):
audio = AudioSegment.from_file(input_path)
os.makedirs(output_dir, exist_ok=True)
silence_ranges = detect_silence(audio, min_silence_len=min_silence_len, silence_thresh=silence_thresh)
silence_ranges = [(start, stop) for start, stop in silence_ranges]
prev_end = 0
count = 1
for start, stop in silence_ranges:
segment = audio[prev_end:start]
segment_name = os.path.join(output_dir, f"segment_{count:03}.mp3")
segment.export(segment_name, format="mp3")
print(f"✅ Saved {segment_name}")
count += 1
prev_end = stop
# last segment
if prev_end < len(audio):
segment = audio[prev_end:]
segment_name = os.path.join(output_dir, f"segment_{count:03}.mp3")
segment.export(segment_name, format="mp3")
print(f"✅ Saved {segment_name}")
def main():
parser = argparse.ArgumentParser(description="Split audio on silence into chapters")
parser.add_argument("--input", required=True, help="Input audio file (mp3/wav/etc.)")
parser.add_argument("--silence_thresh", type=int, default=-40, help="Threshold (dBFS) to detect silence")
parser.add_argument("--min_silence_len", type=int, default=2000, help="Minimum silence length (ms)")
parser.add_argument("--keep_silence", type=int, default=500, help="Silence to leave at edges (ms)")
parser.add_argument("--output", default="segments", help="Directory to save segments")
args = parser.parse_args()
split_on_silence(args.input, args.silence_thresh, args.min_silence_len, args.keep_silence, args.output)
if __name__ == "__main__":
main()
pip install pydub
Также потребуется ffmpeg или avlib — убедись, что установлен!
🟠 Разбивка подкастов, лекций или интервью на главы🟠 Подготовка аудио к конвертации, генерации транскрипта по части🟠 Автоматизация медиа-обработки для подкастеров и создателей контента
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤4👍3🔥1
ЧЕБУРНЕТУ БЫТЬ!🤭
Ниже даю список каналов спецов из сферы кибербеза, которые уже придумали все за тебя:
HACK WARRIOR. – парни уже давно сели на измену и активно постируют контент на тему защиты своих личных данных в интернете, чтобы не сел ты.
secure sector – канал безопасника однажды сильно пострадавшего от халатного отношения к своей интернет-гигиене. Собственно, поэтому и стал безопасником...
INFOSEC LIZARD – твой личный криптонит от любых кибер-угроз в сети.
Я бы не хотел, чтобы в будущем ты пожалел о том, что пролистал этот пост. Оставайся в безопасности.
Медный купол по-немногу накрывает, а ты даже не знаешь как действовать?
Ниже даю список каналов спецов из сферы кибербеза, которые уже придумали все за тебя:
HACK WARRIOR. – парни уже давно сели на измену и активно постируют контент на тему защиты своих личных данных в интернете, чтобы не сел ты.
secure sector – канал безопасника однажды сильно пострадавшего от халатного отношения к своей интернет-гигиене. Собственно, поэтому и стал безопасником...
INFOSEC LIZARD – твой личный криптонит от любых кибер-угроз в сети.
Я бы не хотел, чтобы в будущем ты пожалел о том, что пролистал этот пост. Оставайся в безопасности.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9❤3
NicheCompass🟢 Поддерживает Python 3, пакет опубликован на PyPI: версия 0.3.0 на 7 августа 2025.🟢 Использует фреймворки для графовых данных (например, PyG) и AnnData — удобно, если работаешь с биоинформатикой или анализом клеточных микросред.
pip install nichecompass
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
❗️ Произошёл масштабный слив Apple, Open AI, Microsoft и других западных гигантов
В сеть утекли корпоративные документы для обучения персонала: гайды, инструкции к ИИ, инсайды по грядущим новинкам и разработкам.
Целых 4 терабайта (!) инфы распределили по закрытым каналам. Сохраняй пока доступно:
❖ Гайды по ИИ и инструментам для работы и творчества
❖ Чеклисты, фреймворки, репозитории и куча полезностей
❖ Инсайды по IT-разработкам и новым технологиям
❖ Слитая инфраструктура Apple
❖ Обучения легальному и нелегальному хаккингу
❖ Всё про Python от топов из Microsoft
❖ + бонус:канал с мемами про IT, ИИ и технологии.
👆 Подпишись, скоро поменяем ссылки
В сеть утекли корпоративные документы для обучения персонала: гайды, инструкции к ИИ, инсайды по грядущим новинкам и разработкам.
Целых 4 терабайта (!) инфы распределили по закрытым каналам. Сохраняй пока доступно:
❖ Гайды по ИИ и инструментам для работы и творчества
❖ Чеклисты, фреймворки, репозитории и куча полезностей
❖ Инсайды по IT-разработкам и новым технологиям
❖ Слитая инфраструктура Apple
❖ Обучения легальному и нелегальному хаккингу
❖ Всё про Python от топов из Microsoft
❖ + бонус:
👆 Подпишись, скоро поменяем ссылки
😁10❤1
requests, os, zipfile, возможно GitHub API (через токен) — по описанию.Скрипт, который позволяет скачать архивом все ваши репозитории GitHub (включая приватные, если есть токен), чтобы держать офлайн-копии ваших проектов. Идея: не полагаться полностью на GitHub-хостинг, а иметь локальный архив.
🟢 Получает список репозиториев пользователя через GitHub API, используя токен, если указан.🟢 Под каждый репо создаёт архив (.zip или .tar.gz) или клонирует его.🟢 Сохраняет в указанную папку локально с именем репо и датой.🟢 Может запускаться периодически как бэкап-утилита.
🟢 Собирает все репозитории пользователя (public + приватные)🟢 Скачивает как архив или клонирует, чтобы сохранить копию🟢 Удобна для сохранения резервных копий проектов, особенно если много маленьких хобби-репо🟢 Простая идея, но реально полезная при потере данных или закрытии аккаунта
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Умельцы собрали все эти курсы и выложили их в свой канал - IT Matrix.
Забирай свое направление:
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3❤1
EZPubSub🟢 Работает с Python 3.8+.🟢 Ноль внешних зависимостей — чистый Python.🟢 Поддержка синхронных сигналов и асинхронных событий (async/await) через единый API.🟢 Строгая типизация: сигналы могут быть параметризованы типами данных, которые публикуются и подписываются.🟢 Потоко-безопасность: подписчики могут регистрироваться/отписываться безопасно в многопоточном окружении.
pip install ezpubsub
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
pytesseract (Tesseract OCR обёртка в Python), Pillow, clipboard (или аналог для захвата из буфера), os, sys.import pytesseract
from PIL import Image
import os, sys
def extract_text_from_image(image_path, lang="eng"):
image = Image.open(image_path)
text = pytesseract.image_to_string(image, lang=lang)
return text
if __name__ == "__main__":
folder = sys.argv[1] # папка с изображениями или файл пути
for fname in os.listdir(folder):
if fname.lower().endswith((".jpg", ".png", ".jpeg", ".tiff")):
path = os.path.join(folder, fname)
txt = extract_text_from_image(path, lang="eng")
print(f"=== {fname} ===")
print(txt)
# можно дополнительно: сохранять txt в файл или копировать
🟢 Принимает файл изображения или папку с изображениями🟢 Использует Tesseract OCR через pytesseract для извлечения текста🟢 Поддерживает указание языка OCR и опционально настройку параметров🟢 Выводит текст в консоль, может сохранять в .txt файл или копировать в буфер обмена🟢 Удобно автоматизировать: пакет документов, извлечение текста из сто-снимков, “менеджмент документов”
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤5🔥3
Канал сеньора, где публикуются гигабайты материалов для DevOps-инженеров:
97 ГБ — Linux
48 ГБ — Docker
12 ГБ — Kubernetes
25 ГБ — Redis
81 ГБ — Git
19 ГБ — Jira
29 ГБ — Grafana
Присоединяйтесь: @devops_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
psutil, subprocess, argparse, time🟠 Проверяет состояние заданной службы (через psutil.win_service_get)🟠 Если служба не работает — делает попытку перезапуска через sc start🟠 Логирует результат: статус до/после🟠 Можно указать таймаут между проверками и автоматический перезапуск — минималистично и эффективно (stackoverflow.com, gist.github.com)
python service_watchdog.py --service "Spooler" --interval 30
import psutil, subprocess, time, argparse
def check_service(name):
try:
svc = psutil.win_service_get(name).as_dict()
return svc.get('status') == 'running'
except Exception as e:
print(f"Ошибка при проверке службы {name}: {e}")
return False
def restart_service(name):
print(f"Попытка перезапуска службы: {name}")
subprocess.run(['sc', 'start', name], shell=True)
def main(service, interval):
while True:
running = check_service(service)
print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] {service} is {'running' if running else 'NOT running'}")
if not running:
restart_service(service)
time.sleep(5)
print(f"Снова проверяю...")
time.sleep(interval)
else:
time.sleep(interval)
if __name__ == "__main__":
parser = argparse.ArgumentParser("Windows Service Watchdog")
parser.add_argument("--service", required=True, help="Name of the Windows service")
parser.add_argument("--interval", type=int, default=60, help="Check interval in seconds")
args = parser.parse_args()
main(args.service, args.interval)
pip install psutil
— psutil нужен для проверки статуса службы. Команда sc используется для запуска, есть в Windows по умолчанию.
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
requests, tqdm, urllib3.Retry, bs4/BeautifulSoup, threading, queue, pathlib и др. # Упрощённый псевдокод
from wbmdownloader import WaybackDownloader
down = WaybackDownloader(
url="http://example.com",
output_folder="output/example.com",
from_date="200703",
to_date="200704",
threads=8
)
down.run()
🟢 Получает список снимков сайта на web.archive.org за указанный диапазон дат.🟢 Скачивает файлы (HTML, изображения, CSS, JS и другие ресурсы) с параллельными потоками (--threads параметр) для ускорения.🟢 Сохраняет файлы в структуре: output/{домен}/{дата}/{файлы} — удобно навигировать по временам.🟢 Поддерживает фильтрацию (например, только HTML), проверку наличия файлов чтобы не перекачивать заново, логирование и рестарт.
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥2
molecule 🟠 Поддержка Docker, Vagrant, Podman, EC2 и других драйверов🟠 Интеграция с Ansible, Testinfra, Goss🟠 Автоматические проверки, линтинг и CI🟠 Подходит для TDD в инфраструктуре
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4