Как можно определить географическое местоположение объекта на фотографии, используя только длину тени и время съёмки. Разбираем на конкретном примере.
#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥13❤3🤯1😱1
[PYTHON:TODAY]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥12🤯3❤2
Media is too big
VIEW IN TELEGRAM
То есть вы получаете второго «себя», только без ошибок и с мгновенным откликом.
Сохраняем и пробуем ТУТ
#nn #soft
Please open Telegram to view this post
VIEW IN TELEGRAM
👍48🔥16❤6🤯1
Когда нужно собрать фотки, скриншоты или диаграммы в один файл — забудь про ручное копирование.
Python решает задачу в несколько строк кода: просто передай список изображений, и на выходе получишь аккуратный PDF.
from fpdf import FPDF
from pathlib import Path
from typing import List
def images_to_pdf(images: List[str], output: str = "output.pdf") -> None:
"""
Конвертирует список изображений в единый PDF-файл.
:param images: список путей к изображениям (JPG, PNG и т.д.)
:param output: имя выходного PDF-файла
"""
pdf = FPDF()
for img_path in images:
if not Path(img_path).exists():
print(f"⚠️ Файл не найден: {img_path}")
continue
pdf.add_page()
pdf.image(img_path, x=10, y=10, w=180) # подгоняем ширину под страницу
pdf.output(output)
print(f"✅ PDF создан: {output}")
if __name__ == "__main__":
# Пример использования
images_to_pdf(
["image1.jpg", "image2.png", "image3.jpg"],
"images_collection.pdf"
)
Что умеет скрипт:
#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍44❤12🔥10
Please open Telegram to view this post
VIEW IN TELEGRAM
👍59🔥27🤯4😱4🫡3❤2
Даже если ты полный ноль, разберёшься — всё написано простыми словами, без занудных формул и лишней воды с множеством примеров и пояснением.
Это твой входной билет в мир хакинга и кибербеза
#soft #pentest #redteam #cheatsheet #doc
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍42❤12🔥9
This media is not supported in your browser
VIEW IN TELEGRAM
Импланты с RGB подсветкой, которую можно настроить прямо со смартфона
В Европе, Америке и Азии такой апгрейд уже вовсю хайпит в ночных клубах.
Киберпанк, ты не туда воюешь!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥61😱38👍10❤4🫡3🤯2
Хочешь превратить ноутбук в мини‑студию?
Чистый скрипт на OpenCV, который:
from dataclasses import dataclass
from pathlib import Path
from typing import Tuple, Optional
import cv2
@dataclass(frozen=True)
class CaptureConfig:
"""Настройки захвата видео с веб‑камеры."""
device_index: int = 0 # индекс камеры (0 — встроенная)
width: int = 640 # ширина кадра
height: int = 480 # высота кадра
fps: int = 20 # кадров в секунду
fourcc: str = "mp4v" # кодек для MP4: mp4v, для AVI: XVID
def create_capture(cfg: CaptureConfig) -> cv2.VideoCapture:
"""Создаёт и настраивает объект VideoCapture."""
cap = cv2.VideoCapture(cfg.device_index)
if not cap.isOpened():
raise RuntimeError("Не удалось открыть веб‑камеру")
cap.set(cv2.CAP_PROP_FRAME_WIDTH, cfg.width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, cfg.height)
cap.set(cv2.CAP_PROP_FPS, cfg.fps)
return cap
def create_writer(output_path: Path, cfg: CaptureConfig) -> cv2.VideoWriter:
"""Создаёт объект записи видео (VideoWriter)."""
output_path.parent.mkdir(parents=True, exist_ok=True)
fourcc = cv2.VideoWriter_fourcc(*cfg.fourcc)
writer = cv2.VideoWriter(str(output_path), fourcc, cfg.fps, (cfg.width, cfg.height))
if not writer.isOpened():
raise RuntimeError(f"Не удалось создать файл для записи: {output_path}")
return writer
def record_from_webcam(
output_path: Path,
cfg: CaptureConfig = CaptureConfig(),
window_title: str = "Video",
) -> Tuple[bool, Optional[str]]:
"""
Захватывает поток с веб‑камеры, показывает превью и пишет в файл.
Возвращает (успех, сообщение_ошибки).
Остановка по клавише 'q'.
"""
try:
cap = create_capture(cfg)
writer = create_writer(output_path, cfg)
except Exception as e:
return False, str(e)
try:
while True:
ok, frame = cap.read()
if not ok:
return False, "Не удалось прочитать кадр с камеры"
writer.write(frame)
cv2.imshow(window_title, frame)
# выход по 'q'
if cv2.waitKey(1) & 0xFF == ord("q"):
break
return True, None
finally:
cap.release()
writer.release()
cv2.destroyAllWindows()
def main() -> None:
cfg = CaptureConfig(
device_index=0,
width=640,
height=480,
fps=20,
fourcc="mp4v", # для .mp4; можно 'XVID' для .avi
)
ok, err = record_from_webcam(Path("records/vid.mp4"), cfg)
if ok:
print("✅ Запись завершена. Файл: records/vid.mp4")
else:
print(f"❌ Ошибка: {err}")
if __name__ == "__main__":
main()
Код структурирован на функции, есть @dataclass для настроек — бери, редактируй и встраивай в свой проект.
pip install opencv-python
records/vid.mp4
Сохраняй, пригодится!
#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥12❤5
This media is not supported in your browser
VIEW IN TELEGRAM
Не эмуляторы, которые соцсети палят на раз-два, а десятки настоящих смартфонов, каждый с уникальным IP и ИИ, который идеально копирует человеческое поведение: лайки, комменты, скролл, задержки
За всем стоит стартап AutoViral. Его создатель Айо Мосуро уверяет: такие боты могут полностью заменить СММ-отдел — работают в 20 раз продуктивнее и стоят в 8 раз дешевле живого сотрудника.
#news #cyberpunk
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥55😱20👍16❤4🤯2
🐍 Вебинар «Ящик со змеями: контейнеризация Python-приложений и работа с Docker»
📅 26 августа в 20:00 (МСК)
Хотите навести порядок в окружениях, ускорить разработку и перестать слышать «у меня работает, а у тебя - нет»? Тогда вам на этот вебинар от курса «Python Developer. Professional»!
Что будет на вебинаре?
- Зачем нужна контейнеризация и как она упрощает жизнь разработчику
- Особенности использования Docker для Python-приложений
- Как писать понятные и эффективные Dockerfile
- Как избежать типичных ошибок и работать с Docker в команде
🎓 Если вы хотите системно развиваться в Python и выйти на профессиональный уровень - не упустите шанс! Курс стартует уже 29 сентября, и вебинар - отличный повод начать этот путь.
📲 Участие бесплатно. Регистрируйтесь и приходите: https://otus.pw/HLEi/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
📅 26 августа в 20:00 (МСК)
Хотите навести порядок в окружениях, ускорить разработку и перестать слышать «у меня работает, а у тебя - нет»? Тогда вам на этот вебинар от курса «Python Developer. Professional»!
Что будет на вебинаре?
- Зачем нужна контейнеризация и как она упрощает жизнь разработчику
- Особенности использования Docker для Python-приложений
- Как писать понятные и эффективные Dockerfile
- Как избежать типичных ошибок и работать с Docker в команде
🎓 Если вы хотите системно развиваться в Python и выйти на профессиональный уровень - не упустите шанс! Курс стартует уже 29 сентября, и вебинар - отличный повод начать этот путь.
📲 Участие бесплатно. Регистрируйтесь и приходите: https://otus.pw/HLEi/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍11❤5
EyeGestures — представь: ты управляешь интерфейсом одними глазами, без мышки и клавиатуры. Это не фантастика — это EyeGestures: open-source библиотека, которая превращает твою вебку или камеру телефона в eye-tracker.
С её помощью можно строить приложения для управления взглядом, исследования или просто фана.
pip install eyeGestures
python3 examples/simple_example_v2.py
Пример кода:
from typing import Tuple, Optional
from eyeGestures.utils import VideoCapture
from eyeGestures import EyeGestures_v3
def run_eye_tracker(screen_width: int = 500, screen_height: int = 500) -> None:
"""
Запускает eye-tracking с помощью EyeGestures.
:param screen_width: ширина экрана в пикселях
:param screen_height: высота экрана в пикселях
"""
gestures = EyeGestures_v3()
cap = VideoCapture(0)
calibrate: bool = True
while True:
ret, frame = cap.read()
if not ret:
break
event, cevent = gestures.step(
frame,
calibrate,
screen_width,
screen_height,
context="my_context"
)
if event:
cursor_x, cursor_y = event.point[0], event.point[1]
fixation: Optional[bool] = event.fixation
saccades: Optional[bool] = event.saccadess # движение глаз
print(f"X: {cursor_x}, Y: {cursor_y}, Fixation: {fixation}, Saccades: {saccades}")
if __name__ == "__main__":
run_eye_tracker()
Сохрани пост, чтобы не потерять. Это тот самый случай, когда Python выглядит как магия
#python #soft #github
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍32🔥11❤9
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍102❤19🔥14🫡6🤯1😱1
[PYTHON:TODAY]
This media is not supported in your browser
VIEW IN TELEGRAM
С добрым утром! Хорошей недели!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥14🤯6😱6❤4
Forwarded from GitHub программиста
Представь: нужно найти сотни фото для проекта, анализа, датасета или дизайна. Вручную сохранять? Долго. Тут и выручает Google Image Scraper — парсер, который за пару минут соберёт всё, что тебе нужно.
Установка:
$ git clone https://github.com/ohyicong/Google-Image-Scraper
$ cd Google-Image-Scraper
$ pip install -r requirements.txt
Запуск:
$ python main.py
Возможные параметры для main.py:
search_keys
= Строки, по которым будет осуществляться поиск;number of images
= Желаемое количество изображений;headless
= поведение графического интерфейса Chrome. Если True, графического интерфейса не будет;min_solve
= Минимальное желаемое разрешение изображения;max_solve
= Максимальное желаемое разрешение изображения;max_missed
= Максимальное количество неудачных попыток захвата изображения до завершения работы программы. Увеличьте это число, чтобы гарантировать, что большие запросы не завершатся;number_of_workers
= Количество созданных секционных рабочих мест. Ограничено одним работником на каждый поисковый запрос и ветку.#python #soft #github
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥7❤3
Каким будет ваш сервер через 5 лет?
Вендоры перестают делать универсальные серверные процессоры, производственные линии DDR4 закрываются, а совместимость DDR4 с DDR5 отсутствует. Что делать, чтобы купленные серверы оставались актуальными и справлялись с растущей нагрузкой в будущем?
Актуальное решение с перспективой на будущее можно найти у Selectel, одного из ведущих провайдеров IT-инфраструктуры. Selectel Server — серверная платформа собственной разработки на базе процессоров Intel Xeon 6 поколения с DDR5-памятью и дисками NVMe PCIe Gen5. Решение использует актуальные интерфейсы и компоненты нового поколения, чтобы инфраструктура закрывала постоянно растущие требования в будущем.
Что особенного в серверах Selectel?
— Высокая производительность. Обработка задач происходит быстрее на 30–50% по сравнению с предыдущими поколениями оборудования.
— Возможность кастомной настройки. Серверная платформа представлена на базе двух разных линеек процессоров: с E-ядрами под масштабируемые кластеры, микросервисы и базы данных и P-ядрами под ИИ- ML-задачи и высоконагруженные вычисления.
И главное — серверы Selectel гарантируют долгосрочную устойчивость бизнеса. Кроме актуальной серверной архитектуры, провайдер дает расширенную гарантию и полноценную техподдержку.
Протестируйте Selectel Server бесплатно: https://slc.tl/r1qmv
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqxFoDWa
Вендоры перестают делать универсальные серверные процессоры, производственные линии DDR4 закрываются, а совместимость DDR4 с DDR5 отсутствует. Что делать, чтобы купленные серверы оставались актуальными и справлялись с растущей нагрузкой в будущем?
Актуальное решение с перспективой на будущее можно найти у Selectel, одного из ведущих провайдеров IT-инфраструктуры. Selectel Server — серверная платформа собственной разработки на базе процессоров Intel Xeon 6 поколения с DDR5-памятью и дисками NVMe PCIe Gen5. Решение использует актуальные интерфейсы и компоненты нового поколения, чтобы инфраструктура закрывала постоянно растущие требования в будущем.
Что особенного в серверах Selectel?
— Высокая производительность. Обработка задач происходит быстрее на 30–50% по сравнению с предыдущими поколениями оборудования.
— Возможность кастомной настройки. Серверная платформа представлена на базе двух разных линеек процессоров: с E-ядрами под масштабируемые кластеры, микросервисы и базы данных и P-ядрами под ИИ- ML-задачи и высоконагруженные вычисления.
И главное — серверы Selectel гарантируют долгосрочную устойчивость бизнеса. Кроме актуальной серверной архитектуры, провайдер дает расширенную гарантию и полноценную техподдержку.
Протестируйте Selectel Server бесплатно: https://slc.tl/r1qmv
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqxFoDWa
👍10❤3😱1
Хочешь узнать, откуда реально приходит трафик или где физически находится сервер?
IPGeoLocation, утилита на Python, которая за пару секунд выдаст подробный отчёт по любому IP или домену.
Что умеет:
ASN, город, страна, ISP, организация, широта/долгота, регион, часовой пояс, ZIP.
git clone https://github.com/maldevel/IPGeoLocation
pip3 install -r requirements.txt
Узнать свой IP:
./ip2geolocation.py -m
Проверить IP:
./ip2geolocation.py -t 8.8.8.8
Проверить домен:
./ip2geolocation.py -t example.com
Сразу открыть локацию в Google Maps:
./ip2geolocation.py -t 8.8.8.8 -g
#osint #python #soft #tipsandtricks
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥6❤2🤯1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥2😱1