ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

IT Ready

IT Ready

Закрытый канал

Качественные IT ресурсы, сайты, репозитории, курсы и инструменты для обучения. Информация ежедневно пополняется! Cотрудничество: @energy_c Реклама на бирже: https://telega.in/channels/+oQDlPHBPTg82MmU6/card РКН: https://clck.ru/3NJE9E

Больше

📈 Аналитический обзор Telegram-канала IT Ready

Канал IT Ready языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 17 220 подписчиков, занимая 7 556 место в категории Технологии и приложения и 37 989 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 17 220 подписчиков.

Согласно последним данным от 14 ноября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 88, а за последние 24 часа — -10, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 8.73%. В первые 24 часа после публикации контент обычно набирает 4.63% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 1 503 просмотров. В течение первых суток публикация набирает 797 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 19.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как github, api, habr, собеседование, хабре.

📝 Описание и контентная политика

Автор описывает ресурс как площадку для выражения субъективного мнения:
“Качественные IT ресурсы, сайты, репозитории, курсы и инструменты для обучения. Информация ежедневно пополняется! Cотрудничество: @energy_c Реклама на бирже: https://telega.in/channels/+oQDlPHBPTg82MmU6/card РКН: https://clck.ru/3NJE9E”

Благодаря высокой частоте обновлений (последние данные получены 15 ноября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

17 220
Подписчики
-1024 часа
-807 дней
+8830 дней
Архив постов
IT Ready
17 220
👨‍💻 BrowserWire — API для автоматизации браузера с помощью AI-агентов! Сервис предоставляет программный интерфейс для взаимодействия AI-агентов с веб-сайтами. Позволяет интегрировать браузерные операции в приложения и автоматизированные процессы. Основная идея — детерминированное выполнение браузерных действий через API, чтобы сделать взаимодействие AI-агентов с веб-интерфейсами более предсказуемым и управляемым. 📌 Оставляю ссылочку: browserwire.io ➡️ IT Ready | #нейросеть

IT Ready
17 220
Диагностируем сетевые проблемы в Linux через tcpdump! Иногда приложение не может подключиться к удалённому серверу, хотя маршруты настроены правильно и firewall не показывает явных блокировок. В таких случаях полезно посмотреть, что происходит с пакетами на самом деле. Например, запрос завершается ошибкой:
curl https://api.example.com
Получаем Connection timed out, но непонятно, где именно возникает проблема. Для диагностики используем tcpdump, который позволяет перехватывать сетевые пакеты прямо на интерфейсах Linux. Посмотрим весь TCP-трафик на HTTPS-порту:
sudo tcpdump -nn -i any 'tcp port 443'
Параметр -nn отключает преобразование адресов и портов в имена, а -i any захватывает трафик со всех доступных интерфейсов. Если в выводе видим:
IP 10.0.0.15.42310 > 203.0.113.10.443: Flags [S]
Это SYN-пакет — попытка установить TCP-соединение. Если SYN повторяется, но ответа нет, стоит проверить маршрутизацию, сетевую фильтрацию и доступность удалённого сервера. Если приходит ответ:
IP 203.0.113.10.443 > 10.0.0.15.42310: Flags [S.]
Это SYN-ACK — сервер отвечает на запрос соединения. Если клиент затем отправляет ACK, TCP handshake завершён, и дальнейшую диагностику можно сосредоточить на TLS или приложении. На production удобнее фильтровать пакеты по конкретному адресу и порту. Например, при проверке соединения с PostgreSQL:
sudo tcpdump -nn -i any 'host 10.0.0.5 and tcp port 5432'
Так можно увидеть попытки подключения, повторные передачи и сбросы соединений, не анализируя посторонний трафик. Для просмотра содержимого незашифрованных HTTP-запросов:
sudo tcpdump -A -s 0 -i any 'tcp port 80'
Флаг -A отображает данные в ASCII, а -s 0 захватывает пакеты целиком. Для HTTPS содержимое HTTP-запросов останется зашифрованным. Если нужно сохранить трафик для последующего анализа в Wireshark:
sudo tcpdump -i any 'tcp port 443' -c 100 -w capture.pcap
Команда запишет первые 100 подходящих пакетов в файл, который можно изучить отдельно. 🔥 tcpdump помогает быстро определить, на каком этапе возникает сетевая проблема: при отправке пакетов, получении ответа или уже после установки TCP-соединения. Особенно полезно, когда логи приложения не дают никаких зацепок. ➡️ IT Ready | #практика

IT Ready
17 220
❤️ Интересная статья на Хабре: «Деньги быстрее железа: что на самом деле обвалило акции ИИ‑компаний»! В этой статье: • Узнает
❤️ Интересная статья на Хабре: «Деньги быстрее железа: что на самом деле обвалило акции ИИ‑компаний»! В этой статье: • Узнаете, почему акции Intel, Alphabet и Amazon резко упали, несмотря на сильные финансовые показатели и рост ИИ-направлений; • Разберётесь, как дефицит оперативной памяти, нехватка электроэнергии и задержки строительства дата-центров тормозят развитие ИИ; • Поймёте, почему миллиардные инвестиции в нейросети пока не обеспечивают ожидаемой отдачи и чем нынешняя ситуация отличается от пузыря доткомов.
🔊 Продолжай читать на Habr!
➡️ IT Ready | #статья

IT Ready
17 220
Bash позволяет повторно использовать команды из истории без их поиска и ручного ввода! Например, набрали длинную команду, но
Bash позволяет повторно использовать команды из истории без их поиска и ручного ввода! Например, набрали длинную команду, но забыли sudo и получили ошибку доступа. Вместо повторного ввода достаточно написать:
apt install nginx
sudo !!
Bash подставит вместо !! предыдущую команду целиком и выполнит её с повышенными правами. А если нужно повторить команду, которую запускали несколько шагов назад, используйте относительный номер:
!-2
Bash выполнит команду, находящуюся на две позиции раньше в истории текущей оболочки. Если помните только начало команды, можно найти последнее совпадение:
!docker
!grep
Bash найдёт последнюю команду, начинающуюся с указанного текста, и сразу выполнит её. Команду можно сначала посмотреть, не выполняя. Для этого добавьте :p:
!docker:p
!grep:p
Так Bash покажет найденную команду, чтобы вы могли проверить её перед запуском. 🔥 Подстановка команд из истории Bash экономит время при работе с длинными командами и избавляет от постоянного поиска уже введённых инструкций. Главное помнить, что без :p найденная команда выполняется сразу. ➡️ IT Ready | #совет

IT Ready
17 220
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место р
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место работы поскольку в среднем уже в первый месяц смогли заработать 250 000 рублей, а через 2-3 месяца с легкостью вышли на семизначные числа. Самое смешное, что лишь 8% россиян что-то слышали об этой профессии хотя все инструкции бесплатно лежат на канале Арбитраж Криптовалют Там объясняют, как имея телефон и доступ в интернет заработать свои первые $3000. Причём разжёвывают так доступно, что поймёт даже ребенок. Кстати, на канале сегодня вышла новая рабочая связка! Ссылка для входа — https://t.me/+lvVed8tyOGg5ZWNi

IT Ready
17 220
😎 Awesome RU — большая подборка интересных проектов с открытым исходным кодом от русскоязычных разработчиков! В репозитории собраны библиотеки, инструменты и готовые решения для веб-разработки, машинного обучения, работы с базами данных, серверной инфраструктурой и не только. Среди них есть как известные проекты вроде ClickHouse, CatBoost и Nginx, так и менее популярные, но полезные разработки. У каждого проекта есть краткое описание и ссылка на исходный код.
Оставляю ссылочку: GitHub 📱
➡️ IT Ready | #репозиторий

IT Ready
17 220
Как безопасно проверить конфигурацию nftables на удалённом линукс сервере? Ошибки в правилах nftables могут привести к блокировке SSH-доступа, особенно при использовании политики drop или изменении разрешённых портов. Перед применением новой конфигурации полезно проверить её и изучить действующие правила, не изменяя firewall. Практика рассчитана на линукс с установленным nftables. Все команды ниже не изменяют активные правила фильтрации. Сначала посмотрим текущий набор правил:
sudo nft list ruleset
Команда покажет таблицы, цепочки, правила и другие объекты nftables. Сохраним снимок текущих правил для диагностики:
sudo sh -c 'umask 077; nft list ruleset > /root/nft-rules-snapshot.conf'
Файл будет доступен только root. Это диагностический снимок, а не гарантированная резервная копия для восстановления динамических правил. Теперь проверим подготовленную конфигурацию, например /etc/nftables.conf:
sudo nft -c -f /etc/nftables.conf
Параметр -c проверяет конфигурацию без применения изменений. Если обнаружены ошибки, nft выведет диагностическое сообщение. Успешная проверка не гарантирует сохранения SSH-доступа после применения правил. Дополнительно посмотрим действующие цепочки, политики и идентификаторы правил:
sudo nft -a list ruleset
Особое внимание уделим базовым цепочкам с hook input, их приоритетам и политикам accept или drop. Проверим, на каких TCP-портах сервер принимает подключения:
sudo ss -ltnp
Найдём SSH-сервер в выводе и убедимся, что его порт учтён в планируемой конфигурации. Прослушивание порта само по себе не гарантирует доступность через firewall. Команды не изменяют действующие правила. Для их применения на удалённом сервере необходимы отдельный механизм отката и резервный консольный доступ. 🔥 Предварительная проверка через nft -c помогает обнаружить ошибки конфигурации без риска заблокировать SSH из-за её применения. ➡️ IT Ready | #практика

IT Ready
17 220
😎 Handium — нейросеть для распознавания рукописного текста! Сервис превращает фотографии, сканы и PDF с рукописным текстом в редактируемый документ. Нейросеть распознаёт прописной и печатный почерк, курсив, мелкие и трудночитаемые записи, а результат можно проверить и исправить во встроенном редакторе. Handium старается сохранить исходную структуру страницы: заголовки, списки, таблицы, расположение блоков и формулы. 📌 Оставляю ссылочку: handium.ru 🚪 AI Ready | #нейросеть

IT Ready
17 220
Как получить стек вызовов зависшей программы без отладчика? Если Python-программа перестала отвечать и не выдаёт ошибок, опре
Как получить стек вызовов зависшей программы без отладчика? Если Python-программа перестала отвечать и не выдаёт ошибок, определить причину бывает непросто. Для таких ситуаций в стандартной библиотеке есть модуль faulthandler. Он позволяет вывести стеки вызовов Python-потоков по истечении заданного времени.
import faulthandler

faulthandler.dump_traceback_later(5)

while True:
    pass
Через пять секунд Python выведет текущие стеки вызовов в stderr с указанием файлов и номеров строк. Это работает даже тогда, когда программа продолжает выполняться без исключений. Для наблюдения за длительными зависаниями можно включить периодический вывод.
faulthandler.dump_traceback_later(5, repeat=True)
Теперь стеки будут выводиться каждые пять секунд, помогая определить, на каком участке кода находится каждый поток. После завершения проверяемой операции запланированный вывод можно отменить.
faulthandler.cancel_dump_traceback_later()
Важно учитывать, что faulthandler не определяет зависание автоматически: вывод происходит по таймеру независимо от состояния программы. 🔥 faulthandler.dump_traceback_later() помогает диагностировать зависания без отладчика, показывая стеки Python-потоков с указанием файлов и номеров строк. ➡️ IT Ready | #совет

IT Ready
17 220
photo content

IT Ready
17 220
Как научить AI-агента определять, когда нужен поиск в интернете? Не каждый запрос требует внешних источников, базовые вопросы можно обрабатывать без поиска, а сведения о последних релизах и изменениях API необходимо проверять. Постоянные обращения к поисковым сервисам увеличивают задержку и расходы. Реализуем LLM-маршрутизатор через OpenAI Responses API. Модель будет определять необходимость поиска и возвращать типизированное решение. Установим зависимости и настроим API-ключ:
pip install -U openai pydantic
export OPENAI_API_KEY="your_api_key"
Опишем структуру ответа через Pydantic. Поле need_search отвечает за выбор маршрута, а query содержит поисковую строку:
from openai import OpenAI
from pydantic import BaseModel

client = OpenAI()

class SearchDecision(BaseModel):
    need_search: bool
    query: str
Создадим функцию классификации. responses.parse() обеспечивает структурированный вывод согласно заданной схеме без ручного разбора JSON:
def route(question: str) -> SearchDecision:
    response = client.responses.parse(
        model="gpt-4.1-mini",
        instructions=(
            "Определи, нужен ли интернет-поиск. "
            "Для актуальных данных используй поиск. "
            "Для общих вопросов поиск не нужен. "
            "Если поиск не нужен, query пустой."
        ),
        input=question,
        text_format=SearchDecision,
    )
    if response.output_parsed is None:
        raise RuntimeError("No routing decision")
    return response.output_parsed
Проверим маршрутизатор на двух запросах. Первый не требует актуальных данных, второй предполагает проверку последнего релиза библиотеки:
for question in [
    "Что такое декоратор в Python?",
    "Что изменилось в последней версии FastAPI?",
]:
    print(route(question).model_dump())
Один из возможных результатов показывает, что модель выбирает разные маршруты. Конкретная поисковая строка может отличаться между запусками:
{'need_search': False, 'query': ''}
{'need_search': True, 'query': 'FastAPI latest release changes'}
Результат классификации используется в обработчике агента. При необходимости приложение выполняет поиск и передаёт найденные данные модели. Ниже показан фрагмент интеграции; search_web() и answer_with_llm() реализуются отдельно:
def handle(question: str):
    decision = route(question)
    if decision.need_search:
        results = search_web(decision.query or question)
        return answer_with_llm(question, context=results)
    return answer_with_llm(question)
Маршрутизация не гарантирует правильного выбора и требует тестирования на реальных запросах. Дополнительный LLM-вызов также имеет стоимость, поэтому эффективность определяется экономией на поиске и общей задержкой обработки. 🔥 LLM-маршрутизация позволяет управлять вызовами внешних инструментов и исключать избыточный поиск там, где достаточно знаний модели. ➡️ IT Ready | #практика

IT Ready
17 220
Gemini Pro Argon на пол года по цене кофе? Gemini Pro на 6 месяцев можно купить за 6$ (480₽ вместо 10.000₽), в 20 раз выгодне
Gemini Pro Argon на пол года по цене кофе? Gemini Pro на 6 месяцев можно купить за 6$ (480₽ вместо 10.000₽), в 20 раз выгоднее чем официальная подписка. > 4.0 Argon топ для вайбкодеров > Nano Banana 2 PRO (картинки) > Видео генерация (видео, нарезки, мувики) > 5 ТБ облака в Google One Для вайбкодеров есть API-токены в 2-3 раза дешевле официальных! Приобрести можно в Магазине с 20.000+ покупок и 2000+ отзывов (есть возвраты и замены).

IT Ready
17 220
🤔 Свежая и очень интересная статья с Хабр: «Как IaC, документация и бэкапы помогли восстановить сервисы, когда пострадали да
🤔 Свежая и очень интересная статья с Хабр: «Как IaC, документация и бэкапы помогли восстановить сервисы, когда пострадали дата-центры Яндекса»! В этой статье: • Узнаете, как команда восстановила критичные сервисы на новой площадке менее чем за сутки после масштабной аварии; • Разберёте, какую роль сыграли Terraform, Ansible, GitOps, документация и заранее проверенные бэкапы; • Поймёте, почему для аварийного восстановления недостаточно просто сохранить данные и как правильно учитывать зависимости между сервисами.
🔊 Продолжай читать на Habr!
➡️ IT Ready | #статья

IT Ready
17 220
Запускаем инференс ML-модели на python через ONNX Runtime! После обучения модели в scikit-learn её можно экспортировать в ONNX и выполнять предсказания через ONNX Runtime. Это позволяет запускать модель без установленного scikit-learn в окружении инференса, а в некоторых случаях — ускорить обработку данных за счёт оптимизированного выполнения. Разберём, как конвертировать обученную модель в ONNX, запустить инференс и проверить корректность предсказаний. Для начала установим зависимости:
pip install scikit-learn skl2onnx onnxruntime numpy
Обучим классификатор RandomForestClassifier на встроенном датасете Iris. Он содержит характеристики цветков трёх видов ириса, а наша модель будет определять вид по четырём числовым признакам:
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier

X, y = load_iris(return_X_y=True)

model = RandomForestClassifier(
    n_estimators=100,
    random_state=42
)
model.fit(X, y)
Теперь экспортируем обученную модель в ONNX с помощью skl2onnx. Конвертер преобразует структуру Random Forest в операции ONNX, сохраняя обученные параметры. Переданный массив задаёт тип входных данных float32 и количество признаков, а размер батча остаётся переменным:
from skl2onnx import to_onnx
import numpy as np

onnx_model = to_onnx(
    model,
    X[:1].astype(np.float32),
    target_opset=12
)

with open("model.onnx", "wb") as f:
    f.write(onnx_model.SerializeToString())
Получили файл model.onnx, содержащий всё необходимое для выполнения модели. Теперь создадим сессию ONNX Runtime, которая загрузит вычислительный граф и подготовит его к инференсу. Через CPUExecutionProvider явно укажем выполнение на процессоре:
import onnxruntime as ort

session = ort.InferenceSession(
    "model.onnx",
    providers=["CPUExecutionProvider"]
)

input_name = session.get_inputs()[0].name
Имя входного тензора получаем непосредственно из модели, поэтому его не нужно прописывать вручную. Передадим сразу пять объектов одним батчем, предварительно приведя данные к float32 — именно такой тип ожидает экспортированная модель:
samples = X[:5].astype(np.float32)

predictions = session.run(
    None,
    {input_name: samples}
)

print(predictions[0])
Метод session.run() выполняет инференс и возвращает список выходных значений. Для нашего классификатора первый элемент содержит предсказанные классы, а второй — вероятности классов. Осталось проверить, что конвертация не изменила результат классификации. Получим предсказания исходной модели на тех же данных и сравним их с результатом ONNX Runtime:
sklearn_preds = model.predict(samples)
onnx_preds = predictions[0]

print(np.array_equal(
    sklearn_preds,
    onnx_preds
))
Ожидаемый результат — True. Предсказанные классы совпадают, но для других моделей после конвертации возможны численные расхождения. ONNX Runtime может ускорить инференс за счёт оптимизаций, однако результат зависит от модели, размера батча и оборудования. Не все операции scikit-learn поддерживают конвертацию, а прирост скорости стоит проверять бенчмарками. 🔥 ONNX Runtime позволяет запускать ML-модели без зависимости от обучающего фреймворка, что удобно при развёртывании API и сервисов инференса. ➡️ IT Ready | #практика

IT Ready
17 220
Потолок зарплаты в IT — ВСЁ Даже Senior-разработчики упираются в потолок. Дальше — менеджмент, смена компании или годы ожидания повышения. Но есть другой путь — зарабатывать больше на уже накопленном IT-опыте. И для этого необязательно переучиваться с нуля. Как именно, рассказывает Артём Алехин — экс-тимлид Сбера, работавший на валютных удаленках. Он совмещал российский найм с валютным контрактом, зарабатывая $8–9 тысяч в месяц. Артем создал проект в рамках которого получил для своих 200 учеников 40+ офферов на 200к+. Три направления, с которыми работает Артём: — Валютная удалёнка: выход на зарубежный рынок и поиск офферов от $5 000. — Монетизация экспертизы: превращать свой IT-опыт в доход через обучение и менторство — Свой IT-продукт: запуск SaaS с проверкой спроса сервиса для селлеров. Артём помогает выбрать подходящий путь и выстроить стратегию роста дохода, чтобы перестать зависеть от одного работодателя. Переходи в канал Артёма и изучай: @artem_itishnaya

IT Ready
17 220
🧐 Meshy AI — нейросеть для создания 3D-моделей по тексту и изображениям! Сервис позволяет генерировать трёхмерные объекты по текстовому описанию или обычной картинке. Достаточно описать нужный предмет или загрузить референс — AI создаст 3D-модель, которую можно доработать и использовать в собственных проектах. Meshy поддерживает генерацию текстур, настройку материалов и экспорт моделей в популярные 3D-форматы. Помогает создавать персонажей, игровые объекты, реквизит, элементы окружения и другие модели без необходимости моделировать всё вручную. 📌 Оставляю ссылочку: meshy.ai 🚪 AI Ready | #нейросеть

IT Ready
17 220
Запускаем инференс ML-модели на python через ONNX Runtime! После обучения модели в scikit-learn её можно экспортировать в ONNX и выполнять предсказания через ONNX Runtime. Это позволяет запускать модель без установленного scikit-learn в окружении инференса, а в некоторых случаях — ускорить обработку данных за счёт оптимизированного выполнения. Разберём, как конвертировать обученную модель в ONNX, запустить инференс и проверить корректность предсказаний. Для начала установим зависимости:
pip install scikit-learn skl2onnx onnxruntime numpy
Обучим классификатор RandomForestClassifier на встроенном датасете Iris. Он содержит характеристики цветков трёх видов ириса, а наша модель будет определять вид по четырём числовым признакам:
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier

X, y = load_iris(return_X_y=True)

model = RandomForestClassifier(
    n_estimators=100,
    random_state=42
)
model.fit(X, y)
Теперь экспортируем обученную модель в ONNX с помощью skl2onnx. Конвертер преобразует структуру Random Forest в операции ONNX, сохраняя обученные параметры. Переданный массив задаёт тип входных данных float32 и количество признаков, а размер батча остаётся переменным:
from skl2onnx import to_onnx
import numpy as np

onnx_model = to_onnx(
    model,
    X[:1].astype(np.float32),
    target_opset=12
)

with open("model.onnx", "wb") as f:
    f.write(onnx_model.SerializeToString())
Получили файл model.onnx, содержащий всё необходимое для выполнения модели. Теперь создадим сессию ONNX Runtime, которая загрузит вычислительный граф и подготовит его к инференсу. Через CPUExecutionProvider явно укажем выполнение на процессоре:
import onnxruntime as ort

session = ort.InferenceSession(
    "model.onnx",
    providers=["CPUExecutionProvider"]
)

input_name = session.get_inputs()[0].name
Имя входного тензора получаем непосредственно из модели, поэтому его не нужно прописывать вручную. Передадим сразу пять объектов одним батчем, предварительно приведя данные к float32 — именно такой тип ожидает экспортированная модель:
samples = X[:5].astype(np.float32)

predictions = session.run(
    None,
    {input_name: samples}
)

print(predictions[0])
Метод session.run() выполняет инференс и возвращает список выходных значений. Для нашего классификатора первый элемент содержит предсказанные классы, а второй — вероятности классов. Осталось проверить, что конвертация не изменила результат классификации. Получим предсказания исходной модели на тех же данных и сравним их с результатом ONNX Runtime:
sklearn_preds = model.predict(samples)
onnx_preds = predictions[0]

print(np.array_equal(
    sklearn_preds,
    onnx_preds
))
Ожидаемый результат — True. Предсказанные классы совпадают, но для других моделей после конвертации возможны численные расхождения. ONNX Runtime может ускорить инференс за счёт оптимизаций, однако результат зависит от модели, размера батча и оборудования. Не все операции scikit-learn поддерживают конвертацию, а прирост скорости стоит проверять бенчмарками. 🔥 ONNX Runtime позволяет запускать ML-модели без зависимости от обучающего фреймворка, что удобно при развёртывании API и сервисов инференса. ➡️ IT Ready | #практика

IT Ready
17 220
Очнись, твои крипта уже исчезла Хакеры вынесли $6,3 млрд с Binance — через один ноутбук инженера. Крупнейший взлом в истории
Очнись, твои крипта уже исчезла Хакеры вынесли $6,3 млрд с Binance — через один ноутбук инженера. Крупнейший взлом в истории крипты занял 20 минут. Теперь помни: твои деньги не только в крипте. Интернет-банк, карты, СМС-коды — всё это ломается через тот же самый ноутбук и смартфон. Через твой. Если хочешь сохранить свои деньги и не стать следующей жертвой — подписывайся на «Пакет безопасности» Здесь разбирают самые актуальные схемы мошенничества, инструменты приватности базу кибергигиены. Без шуток, сейчас это один из самых полезных каналов в Телеге. Надеемся на лучшее, но к чему нужно готовиться — вы и сами понимаете: @package_security

IT Ready
17 220
😍 MLCheatSheets — большая подборка шпаргалок по ключевым алгоритмам и методам! В репозитории собраны краткие материалы, которые помогают разобраться в основных концепциях машинного обучения, повторить математические основы и освежить знания перед практикой. Удобный справочник, когда нужно быстро вспомнить важную формулу, принцип работы алгоритма или подготовиться к техническому собеседованию.
Оставляю ссылочку: GitHub 📱
➡️ IT Ready | #репозиторий

IT Ready
17 220
Самостоятельные стрелочные структуры в Python! В Python объекты могут хранить ссылки на самих себя, образуя циклические струк
Самостоятельные стрелочные структуры в Python! В Python объекты могут хранить ссылки на самих себя, образуя циклические структуры данных. Например, список можно добавить в качестве элемента этого же списка.
data = [1, 2, 3]
data.append(data)
После такой операции последний элемент не становится копией исходного списка. Он ссылается на тот же объект, что легко проверить с помощью оператора is.
print(data[-1] is data)  # True
Интересно, что Python умеет корректно отображать подобные структуры. При выводе механизм repr() списка обнаруживает рекурсивную ссылку и обозначает её многоточием, предотвращая бесконечный вывод.
print(data)  # [1, 2, 3, [...]]
Подобные связи встречаются в графах, объектных моделях и структурах с обратными ссылками. Однако при самостоятельном обходе таких данных необходимо учитывать циклы, иначе рекурсивный алгоритм может зациклиться. Например, поверхностное копирование создаёт новый список, но сохраняет ссылки на исходные элементы:
copy = data.copy()
print(copy[-1] is data)  # True
print(copy[-1] is copy)  # False
При работе с циклическими структурами важно различать копирование контейнера и копирование всей связанной структуры объектов. 🔥 Понимание самоссылочных объектов помогает избегать ошибок при копировании, рекурсивном обходе и обработке графовых структур, где один объект может встречаться несколько раз. 👉 IT Ready | #совет