METANIT.COM – Telegram
METANIT.COM
5.97K subscribers
1.69K photos
81 videos
9 files
1.08K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
30 распростраенных коротких выражений на Python #python
❤‍🔥143👏2
брейкпойнты media в css для различных типов экранов
7🔥1👏1
5 распространенных атак в кибербезопасности

🔷 MITM (Man-in-the-Middle Attack или атака «человек посередине»)

▪️ Злоумышленник перехватывает и изменяет связь между двумя сторонами
▪️ Используется для кражи конфиденциальной информации, такой как учетные данные и личные данные.
▪️ Распространено в незащищенных сетях, таких как общедоступный Wi-Fi.
▪️ Использует слабые протоколы шифрования или незащищенные каналы связи.

🔷 DDOS (Distributed Denial of Service Attack/отказ в обслуживании)

▪️ Перегружает серверы огромным трафиком из нескольких распределенных источников
▪️ Вызывает простой системы и нарушение обслуживания обычных пользователей
▪️ Часто реализуется через ботнеты для усиления интенсивности атак
▪️ Нацелено на веб-сайты, веб-серверы, облачные сервисы и онлайн-платформы

🔷 Ботнеты

▪️ Сеть взломанных устройств, контролируемая киберпреступниками
▪️ Используется для крупномасштабных кибератак, таких как DDOS и кража данных
▪️ Действует скрытно, пользователи не подозревают о взломе своего устройства
▪️ К устройствам относятся ПК, серверы, IoT-устройства и интеллектуальные приборы

🔷 DNS-спуфинг

▪️ Манипулирует записями DNS для перенаправления трафика на мошеннические веб-сайты
▪️ Часто используется для фишинговых атак, распространения вредоносного ПО или кражи личных данных
▪️ Пользователи неосознанно посещают вредоносные веб-сайты
▪️ Может скомпрометировать DNS-серверы посредством отравления кэша или уязвимостей системы

🔷 Руткиты

▪️ Вредоносное программное обеспечение, предоставляющее несанкционированный доступ к системе
▪️ Действует скрытно, обходя антивирусы и средства безопасности
▪️ Изменяет системные файлы и процессы, чтобы оставаться незамеченным
▪️ Обычно используется для длительной кражи данных, наблюдения или контроля
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Анимация к предыдущему посту
👍7❤‍🔥2👏2
Команды для работы с логами и мониторинга в Linux #linux
1🔥1🥰1
Бьёрн Страуструп, создатель C++, призвал комитет WG21, отвечающий за разработку стандартов для языка C++, предпринять меры для сохранения актуальности C++ в условиях активного продвижения перехода на языки, обеспечивающие безопасную работу с памятью. Страуструп считает, что язык С++ уже предоставляет все возможности, необходимые для безопасной работы с памятью.
Как считает Страуструп, осталось немного времени, так как к 1 января 2026 года, в соответствии с рекомендациями правительства США (агентство CISA), производители должны иметь дорожную карту безопасности памяти для продуктов, использующих небезопасные для памяти языки, которая приведет к устранению уязвимостей безопасности памяти, или должны принять безопасное для памяти программирование язык, Страуструп заметил: «Я считаю это реальной угрозой».
Чтобы сделать С++ более безопасным, Страуструп предлагает стандартизировать систему профилей C++, которые вводят дополнительные требования к коду. Профили близки к применению флагов "-Wall" и "-Wextra" при компиляции, но в отличие от них работают на уровне запрета применения определённых возможностей языка. К реализации предлагаются профили для безопасных типов, контроля времени жизни объектов, работы с допустимыми диапазонами значений и целочисленной арифметики.
https://www.theregister.com/2025/03/02/c_creator_calls_for_action/
#save_c++
🤣14👍9🔥1👏1
Скалярные значения vs Векторы vs Матрицы vs Тензоры
👍21🤔6👏1
Системные команды systemctl и journalctl в Linux #linux
🔥5💯4👏2
12 Рекомендаций для уменьшения задержки при передачи данных по сети

1. Используйте индекс базы данных для уменьшения времени доступа
2. Сжимайте передаваемые данные для сокращения времени передачи данных
3. Группируйте запросы для уменьшения сетевого трафика
4. Используйте HTTP 2 для отправки запросов параллельно через мультиплексирование
5. Используйте CDN для хранения данных ближе к пользователям и уменьшайте время запроса
6. Сократите внешние зависимости для минимизации ненужных сетевых вызовов
7. Добавьте балансировщик нагрузки для равномерного распределения трафика и уменьшите нагрузку на серверы
8. Используйте вертикальное масштабирование приложения - применяйте оперативную память и жесткие диски/SSD с более лучшими показателями для более быстрого времени обработки
9. Используйте очередь сообщений для выполнения интенсивных вычислительных задач в фоновом режиме
10. Используйте кеш в памяти для обслуживания популярных данных вместо опроса базы данных
11. Используйте пул соединений для баз данных и сетей, чтобы избежать перегруза при подключении к базе данных
12. Используйте эффективный формат сериализации данных, например, protobuf, чтобы уменьшить время обработки
👍11🥰1👏1
Шпаргалка по хукам в React
5🥰1👏1
Бекэнд-бургер
😁20👍5👏1
Как работают большие модели LLM. Общий процесс:

Шаг 1) Изучение больших объемов текстовых данных
LLM тренируются на огромных наборах данных (книги, веб-сайты и код), чтобы распознавать закономерности и связи между словами. Этот текст очищается и разбивается на токены — небольшие фрагменты, которые может обработать машина.

Шаг 2) Обучение модели
Используя технику глубокого обучения - трансформеры (transformer), LLM анализируют контекстные связи между словами. Они совершенствуются со временем, корректируя свои внутренние настройки (веса) с помощью градиентного спуска — процесса проб и ошибок, который минимизирует ошибки.

Шаг 3) Тонкая настройка для специальных задач
После обучения LLM настраиваются под конкретные приложения, такие как кодинг или поддержка клиентов. Это делается с помощью контролируемого обучения (supervised learning), обучения с подкреплением (Reinforcement Learning) на основе обратной связи с человеком (RLHF) или адаптации с низким рангом (LoRA) для повышения точности.

Шаг 4) Формирование ответов
При вводе запроса LLM обрабатывает ввод, предсказывает наиболее вероятные следующие токены и генерирует ответ. Для повышения точности и релевантности некоторые модели перед генерацией ответа используют RAG-генерацию (Retrieval-Augmented Generation) с поиском внешних источников информации (например, базы данных или документы), чтобы предоставить более фактические ответы. Затем для уточнения окончательного вывода LLM применяет стратегии декодирования, такие как лучевой поиск (beam search) и выборка ядра (nucleus sampling).

Шаг 5) Фильтрация и оптимизация
Перед развертыванием LLM проходят через фильтры безопасности для удаления предвзятостого и вредоносного контента. Они также оптимизируются с использованием таких методов, как квантизация и обрезка, что делает их эффективными для облачного и локальных ИИ.

Какие существуют проблемы?
LLM сталкиваются с такими проблемами, как галлюцинации (ложные результаты), предвзятость и высокие вычислительные затраты. Инженеры оптимизируют их с помощью RAG, спекулятивного декодирования, гибридного развертывания в облаке и других решений.
👍14🥰1👏1
Большая шпаргалка по всем основным типам деревьев
9🔥1👏1
Алгоритмическая сложность алгоритмов машинного обучения
👍6🔥2👏1
Вышла новая версия проекта LLVM и компилятора Clang - LLVM 20/ Clang 20
LLVM/Clang 20 — это новейший полугодовой релиз популярного стека компиляторов с открытым исходным кодом, который широко используется многими различными поставщиками для различных целей: от традиционной компиляции C/C++ до интенсивного использования для вычислительных стеков GPU, растущего использования ИИ с MLIR и многого другого.
В новой версии LLVM/Clang 20 добавлена поддержка ряда расширений, в частности, AMX-AVX512, AMX-FP8, AVX10.2, AMD GFX950 и т.д. Добавлен фреймворк для сбора телеметрии, новый современный компилятор Fortran теперь доступен через команду flang и т.д. В Clang добавлен ряд возможностей последних стандартов C и C++.
Подробнее все изменения по Clang: https://releases.llvm.org/20.1.0/tools/clang/docs/ReleaseNotes.html
https://github.com/llvm/llvm-project/releases/tag/llvmorg-20.1.0
👍8🔥2👏1🤮1
12 распространеных структур данных

1. Массив
- Набор элементов фиксированного размера, хранящийся в непрерывной памяти.
- Обеспечивает доступ O(1) на основе индекса

2. Матрица (двухмерный массив)
- Многомерный массив, используемый для представления сеток, графиков и задач динамического программирования.

3. Связный список
- Динамическая структура данных, в которой элементы (узлы) связаны посредством указателей.
- Типы: односвязный список, двусвязный список, кольцевой связный список.

4. Стек
- Структура данных «последним пришел — первым ушел» (Last-In-First-Out / LIFO), в которой элемент, добавленный последним, удаляется первым.
- Поддерживает операции push, pop и peek за время O(1).

5. Очередь
- Структура данных «первым пришел — первым вышел» ( First-In-First-Out / FIFO).
- Позволяет вставлять в конец очереди (помещать в очередь) и удалять из начала очереди (вынимать из очереди) за время O(1).
- Используется для обработки элементов в том же порядке, в котором они добавляются.

6. Хешкарта(словарь)
- Структура данных «ключ-значение», использующая хеш-функцию для быстрого поиска.
- Обеспечивает среднее время вставки/удаления/поиска O(1), O(N) (в худшем случае из-за коллизий)

7. Дерево
- Иерархическая структура данных с корневым узлом и дочерними узлами.
- Типы: двоичное дерево, N-арное дерево, AVL-дерево, красно-черное дерево (Red-Black Tree)

8. Бинарное дерево поиска (𝐁𝐢𝐧𝐚𝐫𝐲 𝐒𝐞𝐚𝐫𝐜𝐡 𝐓𝐫𝐞𝐞 / 𝐁𝐒𝐓)
- Особый тип деревьев, где имеется отношение левый узел < кореневой узел < правый узел
- Позволяет выполнять поиск, вставку и удаление со скоростью O log N) в сбалансированных BST.

9. Очередь приоритетов / куча
- Структура на основе двоичного дерева, в которой родительский элемент всегда больше (максимальная куча) или меньше (минимальная куча), чем его дочерние элементы.
- Обеспечивает O(log N) вставки/удаления и O(1) получения минимума/максимума.

10. 𝐓𝐫𝐢𝐞
- Древовидная структура, используемая для быстрого поиска строк.
- Обеспечивает время O(M) для вставки/поискп/удаления, где M — длина строки.

11. Граф
- Совокупность узлов (вершин), соединенных ребрами.
- Для представленя применяются список смежности (Adjacency List) или матрица смежности (Adjacency Matrix)
- Типы: направленные, ненаправленные, взвешенные, невзвешенные.

12. 𝐔𝐧𝐢𝐨𝐧-𝐅𝐢𝐧𝐝 (𝐃𝐢𝐬𝐣𝐨𝐢𝐧𝐭 𝐒𝐞𝐭)
- A data structure used for efficiently handling dynamic connectivity.
- Supports Union(x, y) and Find(x) in nearly O(1) time (with path compression).
- Useful in detecting cycles and finding connected components in a graph.

12. 𝐔𝐧𝐢𝐨𝐧-𝐅𝐢𝐧𝐝 (𝐃𝐢𝐬𝐣𝐨𝐢𝐧𝐭 𝐒𝐞𝐭)
- Структура данных, используемая для эффективной обработки динамических подключений.
- Поддерживает операции Union(x, y) и Find(x) за время, почти равное O (1) время (со сжатием пути).
- Полезен для обнаружения циклов и поиска связанных компонентов в графе.
14👍7👏1😐1
(Картинка к предыдущему посту)
11👍1🔥1👏1
Microsoft добавил в .NET новый тип проекта - .NET AI Chat Template (пока в Preview-версии), который разработан, чтобы быстро создать приложение чата на базе ИИ. Этот начальный выпуск базируется на веб-приложении на базе Blazor, созданном с использованием абстракций Microsoft.Extensions.AI и Microsoft.Extensions.VectorData. Шаблон использует шаблон Retrieval Augmented Generation (RAG), который обычно используется для приложений чата.
Шаблон нового проекта доступен как через .NET CLI, так и в Visual Studio
https://devblogs.microsoft.com/dotnet/announcing-dotnet-ai-template-preview1/
🤯8👍4👏2🔥1🤬1😢1🤡1