METANIT.COM
6.24K subscribers
1.79K photos
86 videos
10 files
1.26K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Разница между Encoding (Кодирование), Encryption (Шифрование) и Tokenization (Токенизация)
(продолжение в следующем посте)
6👍4🔥2
Разница между Encoding (Кодирование), Encryption (Шифрование) и Tokenization (Токенизация)
(продолжение предыдущего поста)

#### 1. Encoding (Кодирование)
Суть: преобразование данных из одного формата в другой для удобства передачи или хранения, без защиты от несанкционированного доступа.

Как работает:
- Encoding: алгоритм преобразует «простой текст» (plain text) в закодированный текст (cipher text).
- Decoding: тот же или аналогичный алгоритм возвращает данные в исходный вид (из cipher text в plain text).

Ключевые особенности:
- Не обеспечивает конфиденциальность — закодированные данные легко обратимы.
- Используется для совместимости форматов (например, ASCII, Base64, Protobuf).
- Основная цель — преобразование, а не защита.

Примеры использования (Use Cases):
- кодировка ASCII и Base64 для передачи данных;
- Protocol Buffers (ProtoBuf) для сериализации данных.

#### 2. Encryption (Шифрование)
Суть: преобразование данных в нечитаемый формат с использованием криптографических алгоритмов для защиты конфиденциальности.

Как работает:
- Encryption: алгоритм с публичным ключом (public key) преобразует plain text в cipher text (зашифрованный текст).
- Decryption: алгоритм с приватным ключом (private key) возвращает cipher text в исходный plain text.

Ключевые особенности:
- Обеспечивает конфиденциальность данных.
- Использует сложные математические алгоритмы (например, RSA, AES).
- Без соответствующего ключа расшифровать данные практически невозможно.
- Применяется там, где важна защита информации.

Примеры использования (Use Cases):
- HTTPS для защищённой передачи данных в интернете;
- шифрование электронной почты (Email Encryption);
- защита кошельков в блокчейне (Blockchain Wallet).

#### 3. Tokenization (Токенизация)
Суть: замена чувствительных данных (например, номеров кредитных карт) на уникальный идентификатор — токен, который не несёт прямой ценности для злоумышленника.

Как работает:
1. Tokenization: сервис токенизации (TSP — Token Service Provider) получает чувствительные данные (например, PAN — Primary Account Number) и выдаёт взамен токен.
2. Look Up PAN: при необходимости оригинальные данные извлекаются из «хранилища» (PAN Vault) по токену.
3. Взаимодействие банков: токен используется в транзакциях, а реальный PAN хранится в защищённом месте (например, у эмитента карты).

Ключевые особенности:
- Не использует шифрование — данные заменяются, а не преобразуются.
- Токен не содержит информации о защищаемых данных и бесполезен без доступа к хранилищу.
- Снижает риски утечки конфиденциальной информации (например, при хранении или передаче).
- Соответствует стандартам безопасности (например, PCI DSS).

Примеры использования (Use Cases):
- токенизация номеров кредитных карт;
- обмен финансовыми данными (Financial Data Sharing);
- соблюдение стандартов PCI DSS для защиты платёжных данных.

### Краткое резюме:
- Encoding — преобразование данных для удобства, без защиты.
- Encryption — защита данных с помощью ключей, обратимое шифрование.
- Tokenization — замена чувствительных данных на токены, данные хранятся в защищённом месте.
🔥84👍3
Function chaning (цепочка вызовов) - какой стиль лучше
Anonymous Poll
9%
" hello world" |> trim |> upper
88%
" hello world".trim().upper()
3%
Другое
😁26👀10👎2
Каждый десятый разработчик в крупных IT-компаниях ничего не делает

Исследование учёных Стэнфордского университета показало, что каждый десятый разработчик в крупных IT-компаниях ничего не делает. Они проанализировали данные о производительности более 50 тысяч работников из сотен компаний.

Выяснилось, что 9,5% из них не выполняют никакой полезной работы, хотя и регулярно докладывают об успехах.

Для оценки эффективности программистов использовался специальный алгоритм. Кроме того, учёные изучили данные деловой соцсети LinkedIn. Они анализировали профили сотрудников, работающих в 13 крупнейших корпорациях, в том числе IBM, Microsoft, Oracle, Google, Amazon и других.

Оказалось, что многие программисты просто имитируют работу. Они могут вносить в код пару изменений в месяц, при этом минимально общаясь с коллегами и тратя на работу по 5 часов в неделю. При этом их зарплата может достигать $200–300 тыс. в год.

По данным исследователей, сокращения «сотрудников-призраков» сэкономили бы упомянутым компаниям в сумме $11,6 млрд, а их общая рыночная капитализация могла бы вырасти на $465 млрд.

Больше всего таких сотрудников удалось обнаружить среди удалёнщиков — 14% от их общего числа. Среди офисных сотрудников таких было лишь 6%, а программистов с гибридной занятостью — 9%.

Авторы исследования считают, что аналогичную ситуацию можно обнаружить не только в IT, но и в большинстве других сфер.

https://softwareengineeringproductivity.stanford.edu/
😁275🔥4👍3💯2👀1
Анатомия MAC-адреса
(продолжение в следующем посте)
7👍4🔥4
Анатомия MAC-адреса
(продолжение предыдущего поста)

MAC-адрес (Media Access Control address) — это уникальный идентификатор сетевого интерфейса (например, сетевой карты), состоящий из 6 байтов (48 бит). Он делится на две основные части:

1. Organizationally Unique Identifier (OUI) — 3 байта (первые 24 бита):
* присваивается IEEE каждому производителю сетевых интерфейсов (NIC vendor);
* идентифицирует компанию-производителя устройства;
* на изображении выделен оранжевым цветом (например, 6C:83:75);
* первый байт OUI содержит два важных бита:
* U/L (Universal/Local) Bit (бит 0):
- 0 — адрес глобально уникален (Universal), назначен IEEE;
- 1 — адрес локально администрируется (Local), может быть изменён администратором сети.

2. Network Interface Controller Specific (NIC) — 3 байта (последние 24 бита):
* присваивается самим производителем для каждого отдельного сетевого интерфейса;
* обеспечивает уникальность MAC-адреса среди устройств одного производителя;
* на изображении выделен голубым цветом (например, B8:22:1A).

Структура битов в MAC-адресе:
* В последнем байте MAC-адреса есть I/G (Individual/Group) Bit (бит групповой/индивидуальный):
* 0Unicast (адрес предназначен для одного устройства, используется для точечной передачи данных);
* 1Multicast (адрес предназначен для группы устройств, используется для широковещательной передачи данных).

Резюме:
* Длина: 6 байтов (48 бит);
* Состав: OUI (3 байта) + NIC (3 байта);
* Ключевые биты: U/L (определяет уникальность) и I/G (определяет тип адресации — индивидуальный или групповой).
Таким образом, MAC-адрес обеспечивает уникальную идентификацию устройства в локальной сети.
👍85🔥4
Мессенджер Telegram могут полностью заблокировать в России к сентябрю 2026 года. Об этом пишет СМИ со ссылкой на заместителя председателя комитета Государственной думы России Михаила Делягина.


По его словам, он ожидает закрытия мессенджера «по схеме YouTube» примерно к выборам, то есть к сентябрю 2026 года. При этом Делягин считает, что часть аудитории все равно останется, как это случилось с другими заблокированными соцсетями.

https://hi-tech.mail.ru/news/141594-v-gosdume-sprognozirovali-blokirovku-telegram-k-sentyabryu/?frommail=1
🤡40🤬7👎4😢1🙏1
6 типов тестирования API
(продолжение в следующем посте)
3👍3🔥2
6 типов тестирования API
(продолжение предыдущего поста)

1. Workflow Testing (тестирование рабочих процессов)
- Суть: проверяет, что последовательность вызовов API работает корректно и позволяет выполнить определённый процесс от начала до конца.
- Цель: убедиться, что цепочка API-запросов взаимодействует правильно, и бизнес-процесс (например, оформление заказа) завершается успешно.
- Пример на изображении: показан сценарий с сообщением «Thanks for your order!» — иллюстрирует, как несколько API-вызовов объединяются для завершения заказа.

2. Performance Testing (тестирование производительности)
- Суть: оценивает скорость, отзывчивость и стабильность работы API в различных условиях нагрузки.
- Цель: выявить «узкие места» — например, задержки при обработке запросов или сбои при высокой нагрузке.
- Пример на изображении: сервер соединён с облаком API пунктирной линией с точками, символизирующими нагрузку — это отражает проверку работы API под нагрузкой.

3. Security Testing (тестирование безопасности)
- Суть: использует методы пенетрационного (атакующего) и фаззинг-тестирования (подачи некорректных данных) для поиска уязвимостей.
- Цель: обнаружить слабые места в API, которые могут быть использованы злоумышленниками (например, SQL-инъекции, неавторизованный доступ).
- Пример на изображении: два силуэта в капюшонах, символизирующие хакеров, пытаются взаимодействовать с облаком API — это подчёркивает аспект безопасности.

4. Data-driven Testing (тестирование, управляемое данными)
- Суть: подаёт на вход API различные наборы и типы данных, чтобы проверить корректность работы в разных сценариях.
- Цель: убедиться, что API правильно обрабатывает крайние случаи (например, пустые значения, некорректные форматы) и не выдаёт ошибок.
- Пример: тестирование, как API реагирует на разные типы входных данных — числа, строки, JSON-объекты.

5. Contract Testing (тестирование контракта)
- Суть: проверяет, что обмен данными между клиентом и API соответствует заранее оговорённой структуре запросов и ответов.
- Цель: гарантировать, что клиент и сервер «говорят на одном языке» — форматы JSON/XML, HTTP-статусы, заголовки запросов совпадают с документацией.
- Пример на изображении: схема с блоками «Request» (запрос) и «Response» (ответ), соединёнными с облаком API, иллюстрирует проверку структуры обмена данными.

6. Endpoint Testing (тестирование конечных точек)
- Суть: проверяет отдельные конечные точки (endpoints) API — корректно ли они реагируют на запросы и возвращают ожидаемые данные или коды ошибок.
- Цель: выявить неработающие или некорректно настроенные endpoints, например, 404-ошибки, неверные JSON-ответы.
- Пример: отправка GET-запроса к /users должна возвращать список пользователей, а POST-запрос к /login — токен аутентификации. Если этого не происходит — endpoint требует доработки.
5👍3🔥2
Алгоритм Луна (Luhn) для верификации номера кредитных карт
32👍9🤷‍♂54
Команда Swift учредила рабочую группу для оптимизации и адаптации языка программирования под Windows

Команда Swift анонсировали создание рабочей группы, которая займётся оптимизацией, адаптацией и поддержкой языка программирования в экосистеме Windows. Благодаря этому разработчики смогут создавать приложения для Windows с помощью Swift и связанных с ним инструментов.

Начальная поддержка Swift в Windows появилась в 2020 году. Теперь команда планирует расширить совместимость и собрала группу, которая будет работать над этим проектом.

В планы входит:

- улучшить поддержку Windows в официальном дистрибутиве Swift;

- адаптировать базовые пакеты Swift (Foundation и Dispatch) под идиомы Windows;

- сформировать рекомендации по поддержке Windows в будущем;

- объединить Swift и Windows API для совместимости Swift-библиотек в приложениях для Windows

https://www.swift.org/blog/announcing-windows-workgroup/
19💩5😁3🔥1👏1🤡1
Какая из версий Windows быстрее в 2026 году

Автор YouTube-канала TrigrZolt решил проверить, действительно ли новые версии Windows работают быстрее старых на одинаковом железе. Для этого он взял 6 одинаковых ноутбуков Lenovo ThinkPad X220 с процессором Intel Core i5-2520M2, 8 ГБ ОЗУ и HDD на 256 ГБ, на которые установил 6 версий Windows со всеми доступными обновлениями:

Windows XP
Windows Vista
Windows 7
Windows 8.1
Windows 10
Windows 11

Стоит оговориться, что такое оборудование не очень подходит для Windows 11: процессор Intel 2011 года, медленный жесткий диск вместо SSD, полное отсутствие TPM 2.0, и работающий через костыли UEFI - именно то железо, на котором новейшая операционка работать не обязана в принципе. Поэтому ставили ОС в обход официальных требований. Но только на таких ограниченных ресурсах и становится понятно, как система на самом деле справляется с нагрузкой. Тем более, что и тест получился довольно всеобъемлющим.

Автор прогнал все системы по полной программе: замерил время загрузки до рабочего стола, посчитал, сколько места занимает каждая ОС на диске после установки всего софта, измерил потребление памяти в простое и под нагрузкой, проверил, сколько вкладок в браузере можно открыть до того, как система не попытается зависнуть, и много чего еще.

Первым тестом была проверка скорости запуска. Быстрее всех стартовала Windows 8.1. На втором месте почему-то оказалась Windows Vista, которую все постоянно ругали за медлительность. Третье место заняла Windows XP. Семерка расположилась где-то в середине. А дольше всех загружалась Windows 11.

Дальше предстояло выяснить, сколько места на диске занимает каждая система. Здесь в принципе работает простое правило: чем новее ОС, тем больше она весит:

- Windows XP — 6,46 ГБ
- Windows Vista — 15,3 ГБ
- Windows 7 — 17,4 ГБ
- Windows 8.1 — ~18 ГБ
- Windows 10 — ~25 ГБ
- Windows 11 — 29,8 ГБ

Тест на то, сколько ОЗУ требуется разным версиям Windows, выявил следующие результаты:

- Windows XP — 0,8 ГБ
- Windows Vista — ~1,5 ГБ
- Windows 7 — ~1,8 ГБ
- Windows 8.1 — ~1,9 ГБ
- Windows 10 — 2,0 ГБ
- Windows 11 — 3,3 ГБ (пики до 3,7 ГБ)

Также TrigrZolt хотел выяснить, сколько вкладок в браузере можно открыть до того, как общее потребление памяти дойдет до 5 ГБ:

- Windows 8.1 — 252 вкладки
- Windows 7 — >200 вкладок
- Windows Vista — >100 вкладок
- Windows 10 — >100 вкладок
- Windows XP — 50 вкладок (дальше – вылеты из-за paging file)
- Windows 11 — 49 вкладок

ПРи этом синтетические бенчмарки не сильно меняют картину. Так, CPU‑Z в однопоточном тесте первое место отдает Windows XP с 356 очками. Второе место — Windows 7 с результатом 355 баллов. Третье место — Windows 10 (353 балла) и Windows 11 — на четвертом (351 балл). Восьмерка и Vista — замыкающие. В многопотоке ситуация принципиально не поменялась. Лишь выросли цифры, да Vista и XP поменялись местами.

https://www.youtube.com/watch?v=7VZJO-hOT4c
🔥17👾15👍8🤪41👏1🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядно как работает шардинг базы данных с прокси
🔥116👍2
В сеть утёк интерфейс Aluminium OS — операционной системы, в которую объединены Android и ChromeOS

В сети оказался внешний вид интерфейса операционной системы Aluminium OS от Google, которая объединяет Android и ChromeOS. Дизайн новой ОС фигурирует в скринкасте отчёта об ошибке, касающейся вкладок в режиме инкогнито браузера Chrome.

Номер сборки ALOS — Aluminium OS, кодовое название настольной версии Android — обозначен как ZL1A.260119.001.A1. В видео также упомянута Android 16.

Название плана по объединению ChromeOS и Android в единую настольную ОС стало известно в ноябре прошлого года. Aluminium OS должны запустить в этом году. Вероятно, публичный релиз ОС будет основан на Android 17, которая также выйдет в 2026 году.

https://9to5google.com/2026/01/27/android-desktop-leak/
💩109🔥2🤨2👏1
Наиболее популярные сетевые протоколы
(продолжение в следующем посте)
9👍3🔥3
Наиболее популярные сетевые протоколы
(продолжение предыдущего поста)

В настоящее время в мировой сети применяется множество протоколов. И каждый протокол оптимизирован под определённые задачи — от простого веб-сёрфинга до передачи файлов и организации видеосвязи. Их сочетание обеспечивает работу современного интернета.
Но можно выделить 8 ключевых сетевых протоколов, вкратце рассмотрим их:

1. HTTP (HyperText Transfer Protocol)
- Как работает: устанавливает TCP-соединение, отправляет HTTP-запрос (HTTP REQ) и получает HTTP-ответ (HTTP RESP).
- Сценарии использования: веб-сёрфинг (просмотр веб-страниц).
- Особенности: базовый протокол для обмена данными в интернете, лежит в основе работы веб-сайтов.

2. HTTP/3 (QUIC)
- Как работает: использует UDP-соединение, оптимизирован для быстрой передачи данных (этапы 1–5 показаны на схеме).
- Сценарии использования: IoT (интернет вещей), виртуальная реальность (VR).
- Особенности: более современный и быстрый по сравнению с HTTP, минимизирует задержки, подходит для ресурсоёмких приложений.

3. HTTPS (HyperText Transfer Protocol Secure)
- Как работает: устанавливает TCP-соединение, использует публичный и сессионный ключи для шифрования данных, передаёт зашифрованные данные.
- Сценарии использования: веб-сёрфинг с защитой данных (например, онлайн-банкинг, заполнение форм).
- Особенности: защищённая версия HTTP, обеспечивает конфиденциальность и целостность данных за счёт шифрования.

4. WebSocket
- Как работает: начинается с HTTP-обновления (HTTP Upgrade), затем устанавливается полнодуплексное (Full Duplex) соединение — позволяет передавать данные в обе стороны одновременно.
- Сценарии использования: живые чаты (Live Chat), передача данных в реальном времени (Real-Time Data Transmission).
- Особенности: подходит для приложений, где важна мгновенная передача информации (например, онлайн-игры, биржевые графики).

5. TCP (Transmission Control Protocol)
- Как работает: использует трёхэтапное рукопожатие (SYN → SYN+ACK → ACK) для надёжного установления соединения.
- Сценарии использования: веб-сёрфинг, почтовые протоколы (электронная почта).
- Особенности: обеспечивает надёжную, упорядоченную и безошибочную передачу данных, подходит для критически важных приложений.

6. UDP (User Datagram Protocol)
- Как работает: отправляет запросы (REQUEST) и получает ответы (RESPONSE) без установления надёжного соединения.
- Сценарии использования: видеоконференции (Video Conferencing).
- Особенности: менее надёжен, чем TCP, но быстрее — подходит для приложений, где важнее скорость, чем гарантия доставки (например, VoIP, стриминг).

7. SMTP (Simple Mail Transfer Protocol)
- Как работает: передаёт почту от отправителя (sender) через SMTP-сервер к получателю (receiver).
- Сценарии использования: отправка и получение электронной почты (Sending/Receiving Emails).
- Особенности: основной протокол для передачи почты между почтовыми серверами.

8. FTP (File Transfer Protocol)
- Как работает: использует два канала — канал управления (Control Channel) и канал передачи данных (Data Channel) для загрузки и скачивания файлов.
- Сценарии использования: загрузка и скачивание файлов (Upload/Download Files).
- Особенности: классический протокол для передачи файлов, но менее безопасен по сравнению с современными альтернативами (например, SFTP).
12🔥4👍3
Линус Торвальдс принял план передачи управления репозиторием ядра Linux в непредвиденных ситуациях

Линус Торвальдс принял в состав ядра Linux план действий на случай, если с ним и доверенными лицами что-то случится и они не смогут принимать изменения в первичный репозиторий "torvalds/linux.git". План подготовлен Дэном Вильямсом (Dan Williams) из компании Intel, сопровождающим 9 подсистем в ядре Linux и занимающим пост председателя Технического комитета Linux Foundation.
В соответствии с принятым планов, при возникновении подобных ситуаций организатором оперативного переключения процесса разработки на новый репозиторий и избрания главного мэйнтейнера назначается ответственный за проведение последнего саммита мэйнтейнеров ядра Linux или, если это невозможно, председатель Технического совета (Technical Advisory Board) организации Linux Foundation.

В случае инцидента план предписывает в течение 72 часов организовать собрание мэйнтейнеров, принимавших участие в последнем саммите мэйнтейнеров ядра Linux. Если саммит не проводится последние 15 месяцев состав участников собрания определит Технический совет Linux Foundation. На собрании будут рассмотрены варианты дальнейшего управления первичным репозиторием и коллективно приняты необходимые решения, например, избран новый "великодушный диктатор" или учреждён совет мэйнтейнеров.

https://www.theregister.com/2026/01/27/linux_continuity_plan/
21🤔6👍3
ИИ сформировал семь новых профессий на рынке труда в Росси

Стремительное развитие ИИ привело к формированию новых профессий на российском рынке труда. Эксперты hh_ru проанализировали актуальную базу вакансий и выделили 7 востребованных специализаций, функционал которых напрямую связан с нейросетями.

Самой высокооплачиваемой профессией в этой группе стал специалист по машинному обучению (ML-инженер). В его задачи входят разработка, обучение и оптимизация моделей. Диапазон медианных зарплатных предложений по таким вакансиям составляет от 184 тысяч до 345 тысяч руб. в месяц.

Спрос сохраняется и на AI-инженеров, которые занимаются проектированием и внедрением решений на базе ИИ. Медианная предлагаемая зарплата по таким позициям составляет около 220 тысяч руб. Архитекторы AI-решений, отвечающие за построение и развитие платформ ИИ, могут рассчитывать на 100–150 тысяч руб. в месяц.

Отдельным направлением стал AI-тренер — специалист, обучающий нейросети корректным ответам и формирующий эталонные тексты. Востребованы тренеры с отраслевой экспертизой, включая юриспруденцию, медицину и программирование. Медианная зарплата в вакансиях составляет около 104 тысяч руб.

На рынке также закрепилась профессия prompt-инженера, отвечающего за разработку и оптимизацию текстовых запросов к ИИ. Зарплатные предложения по этим позициям находятся в диапазоне 60–90 тысяч руб.

В креативной сфере востребованы нейрокреаторы — специалисты по генерации визуального контента с помощью нейросетей. В зависимости от задач и уровня экспертизы медианная зарплата варьируется от 30 тысяч до 100 тысяч руб.

Еще одной новой ролью стал ИИ-фасилитатор — специалист, который помогает компаниям внедрять нейросети в рабочие процессы, обучает команды и подбирает подходящие инструменты. Зарплатные предложения по таким вакансиям находятся в диапазоне 100–170 тысяч руб.

Как говорят наблюдатели, многие профессии, связанные с искусственным интеллектом, находятся на стадии формирования: их функционал часто пересекается, а требования к навыкам продолжают уточняться.

https://www.kommersant.ru/doc/8380362
💩192👍2👏2🍓1
Сетевые команды для специалистов по кибербезопасности
(продолжение в следующем посте)
5🙏3🔥2🤮1