Один из методов защиты информации — это стеганография, техника, использующая невидимые элементы для скрытия секретных данных в более привычных для восприятия объектах, таких как изображения.
Как это работает:
🔵 Метод LSB (Least Significant Bit) изменяет наименее значимые биты пикселей изображения для кодирования сообщения. Эти изменения обычно незаметны для человеческого глаза.🔵 Изображение со скрытым сообщением выглядит практически идентично оригиналу, но содержит дополнительную информацию.
Установка библиотеки:
pip install stegano
Пример:
from stegano import lsb
# Скрытие секретного сообщения в изображении
secret = lsb.hide('image.png', 'Your secret message')
# Сохранение изображения со скрытым сообщением
secret.save('secret_img.png')
# Извлечение скрытого сообщения из изображения
print(lsb.reveal('secret_img.png'))
# Вывод → Your secret message
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Эффективные SQL-запросы помогают быстро получать данные и минимизировать нагрузку на базу данных. Вот пять ключевых советов для их создания:
Индексы ускоряют поиск данных. Убедитесь, что столбцы в условиях
WHERE, JOIN и ORDER BY индексированы.Пример:
CREATE INDEX idx_user_name ON users (name);
Выбирайте только те столбцы, которые вам нужны. Это уменьшает объем данных, передаваемых между базой данных и приложением.
Пример:
SELECT id, name FROM users WHERE age > 18;
Предпочитайте
INNER JOIN, если это возможно, и убедитесь, что столбцы для соединения индексированы.Пример:
SELECT u.name, o.order_id
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
Для выборки ограниченного числа строк используйте
LIMIT и OFFSET. Это особенно полезно для пагинации.Пример:
SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 20;
Команда
EXPLAIN помогает понять, как выполняется запрос, и выявить узкие места.Пример:
EXPLAIN SELECT * FROM users WHERE age > 18;
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
В Git есть две команды для удаления веток: -d и -D, каждая из которых имеет свои особенности.
git branch -d <ветка>
Если изменения не были слиты, Git выведет предупреждение и не позволит удалить ветку.
git branch -D <ветка>
⚠️ Будьте осторожны! Это может привести к потере данных, если ветка содержит незаконченные важные изменения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29👍10👀6😁1
Автор проводит серию замеров и выясняет, что в операциях создания и изменения объектов обычные датаклассы (особенно со слотами) значительно быстрее Pydantic.
Однако при парсинге и валидации данных извне мощь Pydantine раскрывается полностью — он делает это эффективнее и безопаснее, чем датаклассы со стандартным json.
Используйте Pydantic для разбора и валидации «сырых» данных, но храните и обрабатывайте результат в быстрых датаклассах.
Вывод прост:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Сливая ветки в системе контроля версий, таких как Git, могут возникнуть merge-конфликты.
Чтобы решить конфликт, следуй этим шагам:🔢 Определи конфликтные файлы: Git подскажет, в каких файлах произошел конфликт.🔢 Открой конфликтные файлы: Найдешь секции, отмеченные <<<<<<<, =======, и >>>>>>>. Это указывает на разные версии изменений.🔢 Редактируй файл: Реши, какие изменения оставить, а какие удалить, затем сохрани файл.🔢 Добавь изменения: Выполни команду git add <имя_файла>.🔢 Заверши слияние: Используй команду git commit для завершения процесса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Feedparser - это удобная библиотека Python, которая предоставляет простой и эффективный способ для чтения данных из различных RSS/Atom-лент.
Она обеспечивает легкий доступ к информации, содержащейся в различных форматах фидов, включая заголовки, описания, ссылки и другие данные.
Установка библиотеки:
pip install feedparser
Этот код загружает данные из RSS-ленты с веб-сайта и выводит заголовки и описания новостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Команды для работы с файлами:🟢 ls— вывод содержимого каталога;🟢 ls -la— вывод содержимого каталога в форматированном виде (в т.ч. скрытые файлы);🟢 cd dir— перейти в каталог dir;🟢 cd— перейти в домашний каталог;🟢 pwd— показать текущий каталог;🟢 mkdir dir— создать каталог dir;🟢 rm file— удалить файл;🟢 rm -r dir— удалить каталог dir;🟢 rm -f file— принудительно удалить файл;🟢 rm -rf dir— принудительно удалить каталог dir;🟢 cp file1 file2— скопировать file1 в file2;🟢 cp -r dir1 dir2— скопировать каталог dir1 в каталог dir2 (если каталога dir2 нет, он будет создан);🟢 mv file1 file2— переместить (или переименовать, если file1 и file2 находятся в одном каталоге) file1 в file2;🟢 ln -s file link— создать симлинк link на файл file;🟢 touch file— создать файл;🟢 cat > file— направить стандартный ввод в file;🟢 more file— вывод содержимого file;🟢 head file— вывод содержимого первых 10 строк file;🟢 tail file— вывод содержимого последних 10 строк file;🟢 tail -f file— вывод содержимого file по мере появления, начиная с последних 10 строк файла.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
httpdbg — это легковесная утилита, которая позволяет отслеживать все HTTP-запросы, отправляемые вашим кодом.
Она предоставляет простой и эффективный способ анализа сетевых взаимодействий без необходимости вручную проверять каждый запрос.
Установка библиотеки:
pip install httpdbg
При выполнении этого кода вы увидите все HTTP-запросы и ответы, которые были отправлены и получены.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4
Это порядок, в котором разработчик пишет SQL-запрос.
Он начинается с SELECT, затем указываются таблицы (FROM), соединения (JOIN), условия (WHERE), группировки (GROUP BY), фильтрации после группировки (HAVING), сортировки (ORDER BY) и ограничения количества строк (LIMIT).
Это порядок, в котором SQL-сервер фактически выполняет запрос.
Он начинается с выбора таблиц (FROM), затем выполняет соединения (JOIN), применяет условия соединения (ON), фильтрует строки (WHERE), группирует данные (GROUP BY), фильтрует группы (HAVING), выбирает столбцы (SELECT), сортирует результаты (ORDER BY) и, наконец, ограничивает количество строк (LIMIT).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
В этой статье разбираем доклад с EuroPython 2025, где инженер и разработчик PyPy Антонио Куни на живых примерах показывает, почему Python тормозит на самом деле, и почему статическая типизация, JIT и даже переписывание на C тут не панацея.
Спойлер:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2
Списки сохраняют порядок, а множества — нет.
Списки могут содержать дубликаты, а множества — нет.
Списки полностью изменяемы, а множества могут изменяться только в плане добавления/удаления элементов.
Списки используют [], а множества — {}.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🤯4
Библиотека chardet является инструментом для работы с текстовыми данными в Python.
Она анализирует текст и определяет его кодировку с указанием уровня достоверности.
Установка библиотеки:
pip install chardet
Использование chardet помогает избежать ошибок, связанных с кодировками, и обеспечивает правильную обработку текстов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Простой скрипт на Python может автоматизировать создание сложных комбинаций символов.
import random
lower = "abcdefghijklmnopqrstuvwxyz"
upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
numbers = "0123456789"
symbols = "!@#$%^&*()_--+=?></["
all_chars = lower + upper + numbers + symbols
length = int(input("Enter a length: "))
password = ''.join(random.sample(all_chars, length))
print("Generated Password:", password)
Разберем по шагам:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2👀1
Особенности работы со срезами:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5