Добавил мобильную версию для руководства по языку программирования Си
https://www.rustore.ru/catalog/app/com.metanit.c_tutorial_full
#c_ansi
https://www.rustore.ru/catalog/app/com.metanit.c_tutorial_full
#c_ansi
RuStore
Руководство по языку C в каталоге RuStore
🚀 Руководство по языку C — Руководство по языку программирования C 📱 Скачайте за 799 рублей на смартфон, ТВ или планшет. Официальная версия (1.0) в RuStore — до 1 тыс установок, рейтинг 5,0★. Безопасно для 0+.
🔥16👏2🥰1
Вкратце про свой опыт использования ИИ. Честно говоря, у меня действительно разочарование, но не только от вчерашнего контрпродуктивного общения с Гигачатом, а вообще из-за развития ИИ в целом. Не думаю, что ИИ когда-нибудь сможет заменить даже разработчика уровня Junior
🎉35🤡13👍11🤨7🤔5🤷♂3👨💻3🔥2😁1🐳1🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядное видео о том, как исходный код компилируется в исполняемый файл
❤🔥11👾6👍4
Объяснение структуры пакета 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
Заголовок 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 рассмотрим его заголовок.
Длина заголовка составляет минимум 20 байт, но может увеличиваться при добавлении опций, и каждая его часть выполняет определенную задачу по поддержанию бесперебойного и безошибочного соединения.
Первые два поля — это 𝐒𝐨𝐮𝐫𝐜𝐞 𝐏𝐨𝐫𝐭 и 𝐃𝐞𝐬𝐭𝐢𝐧𝐚𝐭𝐢𝐨𝐧 𝐏𝐨𝐫𝐭 (Исходный и целевой порты), каждое длиной 2 байта, которые идентифицируют отправляющее и принимающее приложения — например, порт 80 для веб-трафика.
Затем идут 𝐒𝐞𝐪𝐮𝐞𝐧𝐜𝐞 𝐍𝐮𝐦𝐛𝐞𝐫 и 𝐀𝐜𝐤𝐧𝐨𝐰𝐥𝐞𝐝𝐠𝐦𝐞𝐧𝐭 𝐍𝐮𝐦𝐛𝐞𝐫, оба по 4 байта каждое.
Они помогают отслеживать порядок пакетов данных и подтверждать, что было получено, что очень важно для того, чтобы ничего не потерялось и не перемешалось.
Поле Offset, которое составляет 4 бита, сообщает нам, какова длина заголовка в 32-битных словах (умножьте на 4 для байтов), а зарезервированные биты просто предназначены для будущего использования.
Флаги TCP, такие как 𝘚𝘠𝘕 , 𝘈𝘊𝘒 , 𝘰𝘳 𝘍𝘐𝘕 — это 6 бит, которые управляют состоянием соединения, например, запуском или закрытием. Также есть 𝐖𝐢𝐧𝐝𝐨𝐰 (𝟐 байта) для управления потоком, 𝐂𝐡𝐞𝐜𝐤𝐬𝐮𝐦 (𝟐 байта) для обнаружения ошибок и 𝐔𝐫𝐠𝐞𝐧𝐭 𝐏𝐨𝐢𝐧𝐭𝐞𝐫 ( 𝟐 байта) для приоритетных данных.
Также есть несколько дополнительных полей, например TCP Options, которые могут различаться по длине. К ним относятся такие вещи, как Maximum Segment Size или Timestamps, которые помогают точно настроить соединение для лучшей производительности.
Раздел флагов на изображении содержит биты, такие как CWR и ECE для управления перегрузкой, как объяснено в 𝐑𝐅𝐂 𝟑𝟏𝟔𝟖 , и другие, такие как RST или PSH для управления состоянием соединения.
Контрольная сумма охватывает весь сегмент, чтобы убедиться в отсутствии повреждений, и даже включает части заголовка IP (называемые псевдозаголовками), чтобы все перепроверить.
Все это вместе делает протокол TCP надежным для таких вещей, как просмотр веб-страниц или передача файлов.
Длина заголовка составляет минимум 20 байт, но может увеличиваться при добавлении опций, и каждая его часть выполняет определенную задачу по поддержанию бесперебойного и безошибочного соединения.
Первые два поля — это 𝐒𝐨𝐮𝐫𝐜𝐞 𝐏𝐨𝐫𝐭 и 𝐃𝐞𝐬𝐭𝐢𝐧𝐚𝐭𝐢𝐨𝐧 𝐏𝐨𝐫𝐭 (Исходный и целевой порты), каждое длиной 2 байта, которые идентифицируют отправляющее и принимающее приложения — например, порт 80 для веб-трафика.
Затем идут 𝐒𝐞𝐪𝐮𝐞𝐧𝐜𝐞 𝐍𝐮𝐦𝐛𝐞𝐫 и 𝐀𝐜𝐤𝐧𝐨𝐰𝐥𝐞𝐝𝐠𝐦𝐞𝐧𝐭 𝐍𝐮𝐦𝐛𝐞𝐫, оба по 4 байта каждое.
Они помогают отслеживать порядок пакетов данных и подтверждать, что было получено, что очень важно для того, чтобы ничего не потерялось и не перемешалось.
Поле Offset, которое составляет 4 бита, сообщает нам, какова длина заголовка в 32-битных словах (умножьте на 4 для байтов), а зарезервированные биты просто предназначены для будущего использования.
Флаги TCP, такие как 𝘚𝘠𝘕 , 𝘈𝘊𝘒 , 𝘰𝘳 𝘍𝘐𝘕 — это 6 бит, которые управляют состоянием соединения, например, запуском или закрытием. Также есть 𝐖𝐢𝐧𝐝𝐨𝐰 (𝟐 байта) для управления потоком, 𝐂𝐡𝐞𝐜𝐤𝐬𝐮𝐦 (𝟐 байта) для обнаружения ошибок и 𝐔𝐫𝐠𝐞𝐧𝐭 𝐏𝐨𝐢𝐧𝐭𝐞𝐫 ( 𝟐 байта) для приоритетных данных.
Также есть несколько дополнительных полей, например TCP Options, которые могут различаться по длине. К ним относятся такие вещи, как Maximum Segment Size или Timestamps, которые помогают точно настроить соединение для лучшей производительности.
Раздел флагов на изображении содержит биты, такие как CWR и ECE для управления перегрузкой, как объяснено в 𝐑𝐅𝐂 𝟑𝟏𝟔𝟖 , и другие, такие как RST или PSH для управления состоянием соединения.
Контрольная сумма охватывает весь сегмент, чтобы убедиться в отсутствии повреждений, и даже включает части заголовка IP (называемые псевдозаголовками), чтобы все перепроверить.
Все это вместе делает протокол TCP надежным для таких вещей, как просмотр веб-страниц или передача файлов.
👍5🔥4❤2💩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
Теперь все желающие могут бесплатно, добровольно и вне независимости от уровня образования подтвердить свои ИТ-компетенции, пройдя тестирование на специальной платформе.
Сертификат Минцифры позволит работодателям точнее оценивать уровень специалистов, а соискателям даст дополнительное преимущество при трудоустройстве.
Какие навыки можно подтвердить
В этом году на платформе планируется разместить материалы по 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
AI-ассистент «Алиса» сможет не только искать информацию и анализировать её, но и взаимодействовать с сайтами. Например, если пользователь попросит забронировать визит к специалисту или столик в ресторане, цифровой помощник найдёт форму на сайте заведения, заполнит её и отправит запрос. ИИ-агенты уже внедрены в сервисах «Еда» и «Маркет», что ускорило решение вопросов клиентов на 10-15%, сообщил представитель «Яндекса».
https://www.rbc.ru/technology_and_media/02/06/2025/683d49509a7947da350e267f
РБК
«Яндекс» дополнит «Алису» в своем браузере функционалом ИИ-агента
«Яндекс» внедрит в «Алису» навыки ИИ-агента, то есть она сможет не только анализировать интернет-страницы, но и производить на них действия. Ранее подобные функции внедрили разработчики браузеров
👎8👍3🤡3❤2💩2
5 ключевых аспектов проектировании API.
1 - Интерфейс
Проектирование API связано с определением входов и выходов API. Например, определением того, как операции CRUD могут быть представлены пользователю или клиенту.
2 - Парадигмы API
API могут быть построены в соответствии с различными парадигмами, каждая из которых имеет свой набор протоколов и стандартов. Некоторые варианты — REST, GraphQL и gRPC.
3 - Отношения в API
API часто необходимо устанавливать отношения между различными сущностями. Например, у пользователя может быть несколько заказов, связанных с его учетной записью. Конечные точки API должны отражать эти отношения для лучшего клиентского опыта.
4 - Версионирование
При изменении конечных точек API важны правильное управление версиями и поддержка обратной совместимости.
5 - Ограничение скорости
Ограничение скорости примегяется для контроля количества запросов пользователя к API в течение определенного времени. Это имеет решающее значение для поддержания надежности и доступности API.
#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
Тем временем на рынке труда по статистике hh в мае в сфере ИТ продолжилось ухудшение. Количество вакансий уменьшилось на 28% год к году, а соотношение количества активных резюме к количеству активных вакансий достигло 12,8, что представляет крайне высокий уровень конкуренции соискателей за рабочие места
https://stats.hh.ru/?hhIndexProfArea=information_technology&vacanciesProfArea=information_technology&resumesProfArea=information_technology
https://stats.hh.ru/?hhIndexProfArea=information_technology&vacanciesProfArea=information_technology&resumesProfArea=information_technology
😭21🤯8🫡7😢3❤1
Рассмотрим структуру заголовока 𝐔𝐃𝐏 (к предыдущей иллюстрации)
Заголовок UDP состоит из четырех основных частей, и его общая длина составляет всего 8 байт. Во-первых, в него входит исходный порт, который занимает первые 2 байта. Он сообщает, с какого порта поступают данные на стороне отправителя.
Сразу за ним идет порт назначения, также 2 байта, который показывает порт на принимающей стороне, куда направляются данные. Эти порты помогают устройствам выяснить, какое приложение должно обрабатывать входящие данные — например, почтовый адрес для приложения.
Далее идет поле длины, еще 2 байта, которое показывает общий размер сегмента UDP, включая заголовок и фактические данные, которые следуют за ним.
Наконец, есть 𝐂𝐡𝐞𝐜𝐤𝐬𝐮𝐦, также 2 байта, который используется для проверки ошибок в сегменте UDP и даже частях заголовка IP.
Контрольная сумма необязательна в некоторых случаях, но когда она используется, она гарантирует, что данные не были повреждены во время передачи. Она также включает в себя нечто, называемое псевдозаголовком — по сути, небольшой фрагмент заголовка IP — для более надежной проверки ошибок.
Простота UDP делает его невероятно быстрым, но поскольку он не гарантирует доставку или порядок, вам придется самостоятельно обрабатывать эти вещи в своем коде, если они имеют значение для вашего проекта.
Заголовок UDP состоит из четырех основных частей, и его общая длина составляет всего 8 байт. Во-первых, в него входит исходный порт, который занимает первые 2 байта. Он сообщает, с какого порта поступают данные на стороне отправителя.
Сразу за ним идет порт назначения, также 2 байта, который показывает порт на принимающей стороне, куда направляются данные. Эти порты помогают устройствам выяснить, какое приложение должно обрабатывать входящие данные — например, почтовый адрес для приложения.
Далее идет поле длины, еще 2 байта, которое показывает общий размер сегмента UDP, включая заголовок и фактические данные, которые следуют за ним.
Наконец, есть 𝐂𝐡𝐞𝐜𝐤𝐬𝐮𝐦, также 2 байта, который используется для проверки ошибок в сегменте UDP и даже частях заголовка IP.
Контрольная сумма необязательна в некоторых случаях, но когда она используется, она гарантирует, что данные не были повреждены во время передачи. Она также включает в себя нечто, называемое псевдозаголовком — по сути, небольшой фрагмент заголовка IP — для более надежной проверки ошибок.
Простота UDP делает его невероятно быстрым, но поскольку он не гарантирует доставку или порядок, вам придется самостоятельно обрабатывать эти вещи в своем коде, если они имеют значение для вашего проекта.
❤6👍3👏1