METANIT.COM – Telegram
METANIT.COM
5.92K subscribers
1.68K photos
82 videos
9 files
1.06K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Все способы центрирования блоков div в CSS
12👍7🔥3👏1
Как использовать rest-оператор в JavaScript наглядно #javanoscript #js
Вкратце про свой опыт использования ИИ. Честно говоря, у меня действительно разочарование, но не только от вчерашнего контрпродуктивного общения с Гигачатом, а вообще из-за развития ИИ в целом. Не думаю, что ИИ когда-нибудь сможет заменить даже разработчика уровня Junior
🎉35🤡13👍11🤨7🤔5🤷‍♂3👨‍💻3🔥2😁1🐳1🦄1
Алгоритмическая сложность 10 наиболее распространенных ML-алгоритмов
🔥15👍3👏2🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядное видео о том, как исходный код компилируется в исполняемый файл
❤‍🔥11👾6👍4
Структура пакета TCP/IP вкратце
🔥172👏1💩1🤡1🥴1
Объяснение структуры пакета TCP/IP к предыдущему рисунку

Заголовок IP (IPv4) и заголовок TCP взаимодействуют, обеспечивая надежную доставку данных по назначению.

Начиная с заголовка IPv4, начального сегмента пакета, он охватывает ширину 32 бита, при этом каждая строка отображает 32-битный сегмент. Ключевые поля включают версию (установленную на 4 для IPv4), длину (указывающую размер заголовка) и тип обслуживания (для приоритизации пакетов).

Другие важные компоненты включают в себя общую длину (размер пакета), идентификацию (отслеживание фрагментов пакета), флаги (управление фрагментацией), смещение фрагмента (помощь в повторной сборке), время жизни (определение предела прыжков пакета), протокол (идентификация следующего шага, например TCP) и контрольную сумму заголовка (проверка целостности заголовка).

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

Переходя к заголовку TCP после заголовка IP, TCP фокусируется на обеспечении точной и последовательной доставки данных. Поля исходного порта и порта назначения (по 16 бит каждое) идентифицируют приложения, отправляющие и получающие данные, аналогично порту 80 для HTTP.

Порядковый номер контролирует порядок байтов данных, номер подтверждения проверяет полученные данные, а зарезервированные биты вместе с флагами TCP (например, SYN, FIN) управляют инициированием/завершением соединения и передачей данных.

Размер окна регулирует объем передачи данных до ожидания подтверждения, контрольная сумма защищает заголовок и целостность данных, а Urgent Pointer отдает приоритет критически важным данным. Параметры TCP, схожие с параметрами IP, вводят дополнительные конфигурации при необходимости.

Наконец, раздел «Данные» завершает процесс, охватывая фактически передаваемый контент, такой как веб-страницы или электронные письма. Многоуровневый подход TCP/IP обеспечивает эффективную доставку данных: IP направляет пакеты на правильное устройство, в то время как TCP гарантирует точную передачу контента.
#tcp
🔥11❤‍🔥1👏1💩1🤡1🥴1
Вкратце о заголовке TCP
👍8🔥3❤‍🔥1💩1🤡1🥱1
В дополнение к предыдущему посту о структуре пакета TCP рассмотрим его заголовок.
Длина заголовка составляет минимум 20 байт, но может увеличиваться при добавлении опций, и каждая его часть выполняет определенную задачу по поддержанию бесперебойного и безошибочного соединения.

Первые два поля — это 𝐒𝐨𝐮𝐫𝐜𝐞 𝐏𝐨𝐫𝐭 и 𝐃𝐞𝐬𝐭𝐢𝐧𝐚𝐭𝐢𝐨𝐧 𝐏𝐨𝐫𝐭 (Исходный и целевой порты), каждое длиной 2 байта, которые идентифицируют отправляющее и принимающее приложения — например, порт 80 для веб-трафика.

Затем идут 𝐒𝐞𝐪𝐮𝐞𝐧𝐜𝐞 𝐍𝐮𝐦𝐛𝐞𝐫 и 𝐀𝐜𝐤𝐧𝐨𝐰𝐥𝐞𝐝𝐠𝐦𝐞𝐧𝐭 𝐍𝐮𝐦𝐛𝐞𝐫, оба по 4 байта каждое.
Они помогают отслеживать порядок пакетов данных и подтверждать, что было получено, что очень важно для того, чтобы ничего не потерялось и не перемешалось.

Поле Offset, которое составляет 4 бита, сообщает нам, какова длина заголовка в 32-битных словах (умножьте на 4 для байтов), а зарезервированные биты просто предназначены для будущего использования.

Флаги TCP, такие как 𝘚𝘠𝘕 , 𝘈𝘊𝘒 , 𝘰𝘳 𝘍𝘐𝘕 — это 6 бит, которые управляют состоянием соединения, например, запуском или закрытием. Также есть 𝐖𝐢𝐧𝐝𝐨𝐰 (𝟐 байта) для управления потоком, 𝐂𝐡𝐞𝐜𝐤𝐬𝐮𝐦 (𝟐 байта) для обнаружения ошибок и 𝐔𝐫𝐠𝐞𝐧𝐭 𝐏𝐨𝐢𝐧𝐭𝐞𝐫 ( 𝟐 байта) для приоритетных данных. ⁣

Также есть несколько дополнительных полей, например TCP Options, которые могут различаться по длине. К ним относятся такие вещи, как Maximum Segment Size или Timestamps, которые помогают точно настроить соединение для лучшей производительности.

Раздел флагов на изображении содержит биты, такие как CWR и ECE для управления перегрузкой, как объяснено в 𝐑𝐅𝐂 𝟑𝟏𝟔𝟖 , и другие, такие как RST или PSH для управления состоянием соединения.

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

Все это вместе делает протокол TCP надежным для таких вещей, как просмотр веб-страниц или передача файлов.
👍5🔥42💩1🤡1🥴1
Минцифры открыло доступ к системе сертификации IT‑специалистов на «Госуслугах».

Теперь все желающие могут бесплатно, добровольно и вне независимости от уровня образования подтвердить свои ИТ-компетенции, пройдя тестирование на специальной платформе.

Сертификат Минцифры позволит работодателям точнее оценивать уровень специалистов, а соискателям даст дополнительное преимущество при трудоустройстве.

Какие навыки можно подтвердить
В этом году на платформе планируется разместить материалы по 21 ИТ-компетенции.

Сейчас можно пройти тесты
по 5 языкам программирования — Python, Java, SQL, C#, PHP
и 12 теоретическим направлениям — HTML, ООП, PostgreSQL, «Функциональное тестирование», «Регресионное тестирование», Git, API, CSS, Docker, «Алгоритмы и структуры данных», JavaScript, Linux.

В течение года будут добавлены ещё 2 языка программирования — C++ и Go, а также 2 теоретических направления — «Математическая статистика» и «Машинное обучение».

Как получить сертификат
На странице «Национальная система подтверждения ИТ-компетенций» на Госуслугах выберите навык, перейдите на платформу и пройдите оценку.

Специалист, успешно прошедший испытание, получит сертификат Минцифры. Документ будет доступен в течение года в личном кабинете на Госуслугах в разделе «Образование».

https://www.gosuslugi.ru/itskills
🔥20🤔7👍3🤬2💩1🤡1
«Яндекс» внедрит в голосового помощника «Алису» в своём браузере навыки ИИ-агента. Компания планирует сделать новый функционал доступным в бета-версии браузера летом, рассказал представитель «Яндекса».
AI-ассистент «Алиса» сможет не только искать информацию и анализировать её, но и взаимодействовать с сайтами. Например, если пользователь попросит забронировать визит к специалисту или столик в ресторане, цифровой помощник найдёт форму на сайте заведения, заполнит её и отправит запрос. ИИ-агенты уже внедрены в сервисах «Еда» и «Маркет», что ускорило решение вопросов клиентов на 10-15%, сообщил представитель «Яндекса».
https://www.rbc.ru/technology_and_media/02/06/2025/683d49509a7947da350e267f
👎8👍3🤡32💩2
Вкратце алгоритмы сортировки
💩19👍11❤‍🔥2🤣2👏1🤡1
5 ключевых аспектов проектировании API.

1 - Интерфейс
Проектирование API связано с определением входов и выходов API. Например, определением того, как операции CRUD могут быть представлены пользователю или клиенту.

2 - Парадигмы API
API могут быть построены в соответствии с различными парадигмами, каждая из которых имеет свой набор протоколов и стандартов. Некоторые варианты — REST, GraphQL и gRPC.

3 - Отношения в API
API часто необходимо устанавливать отношения между различными сущностями. Например, у пользователя может быть несколько заказов, связанных с его учетной записью. Конечные точки API должны отражать эти отношения для лучшего клиентского опыта.

4 - Версионирование
При изменении конечных точек API важны правильное управление версиями и поддержка обратной совместимости.

5 - Ограничение скорости
Ограничение скорости примегяется для контроля количества запросов пользователя к API в течение определенного времени. Это имеет решающее значение для поддержания надежности и доступности API.
#api
👍7🔥1👏1💩1🤡1🥴1
Как работает двухфакторная аутентификация
16👎1🔥1👏1👀1
Тем временем на рынке труда по статистике hh в мае в сфере ИТ продолжилось ухудшение. Количество вакансий уменьшилось на 28% год к году, а соотношение количества активных резюме к количеству активных вакансий достигло 12,8, что представляет крайне высокий уровень конкуренции соискателей за рабочие места
https://stats.hh.ru/?hhIndexProfArea=information_technology&vacanciesProfArea=information_technology&resumesProfArea=information_technology
😭21🤯8🫡7😢31
Заголовок 𝐔𝐃𝐏
Рассмотрим структуру заголовока 𝐔𝐃𝐏 (к предыдущей иллюстрации)
Заголовок UDP состоит из четырех основных частей, и его общая длина составляет всего 8 байт. Во-первых, в него входит исходный порт, который занимает первые 2 байта. Он сообщает, с какого порта поступают данные на стороне отправителя.

Сразу за ним идет порт назначения, также 2 байта, который показывает порт на принимающей стороне, куда направляются данные. Эти порты помогают устройствам выяснить, какое приложение должно обрабатывать входящие данные — например, почтовый адрес для приложения.

Далее идет поле длины, еще 2 байта, которое показывает общий размер сегмента UDP, включая заголовок и фактические данные, которые следуют за ним.

Наконец, есть 𝐂𝐡𝐞𝐜𝐤𝐬𝐮𝐦, также 2 байта, который используется для проверки ошибок в сегменте UDP и даже частях заголовка IP.

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

Простота UDP делает его невероятно быстрым, но поскольку он не гарантирует доставку или порядок, вам придется самостоятельно обрабатывать эти вещи в своем коде, если они имеют значение для вашего проекта.
6👍3👏1
Ради интереса сделал две примитивных игры под Android на Kotlin (хотя разрабатываю под Android болеее 12 лет, с играми вообще не сталкивался).
Если у пользователей сайта будет интерес, то, возможно, в будущем добавлю руководство по созданию подобных игр.

Змейка
RuStore: https://www.rustore.ru/catalog/app/com.metanit.snake
Google Play: https://play.google.com/store/apps/details?id=com.metanit.snake

Реверси
RuStore: https://www.rustore.ru/catalog/app/com.metanit.reversi
Google Play: https://play.google.com/store/apps/details?id=com.metanit.reversi

#kotlin #android #compose
🔥367❤‍🔥3😁1
Роудмап full stack - разработчика
🤯25👍9💩6😁5😐54🤷‍♂3😱2