METANIT.COM – Telegram
METANIT.COM
5.77K subscribers
1.64K photos
79 videos
9 files
980 links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Rust опередил C/C++ по объёму кода, добавляемого в платформу Android

Использование Rust при разработке системных компонентов Android началось в 2020 году. В 2025 году объём нового кода на Rust в Android превысил объём добавляемого за год кода на C и C++.

Кроме того, в 2025 году впервые доля уязвимостей, вызванных ошибками при работе с памятью, оказалось меньше 20% от общего числа уязвимостей. Для сравнения в 2024 году этот показатель в Android составлял 24%, а в 2019 году - 76%. При этом средний показатель по индустрии продолжает оставаться на уровне 70%.

Также внедрение Rust положительно повлияло на скорость, продуктивность и качество разработки. Для кода на Rust зафиксировано в 4 раза меньше откатов изменений в результате выявления непредвиденных ошибок, а также снижение времени рецензирования на 25%.

https://security.googleblog.com/2025/11/rust-in-android-move-fast-fix-things.html
26🤮15👍4🔥2🤔2👎1💊1
Пример стека микросервисов для продакшена

1. API‑шлюз (API Gateway)
Единая точка входа для всех клиентских запросов. Обеспечивает маршрутизацию, фильтрацию и балансировку нагрузки.

2. Реестр сервисов (Service Registry)
Каталог всех доступных сервисов. Шлюз использует его для обнаружения сервисов. Примеры: Consul, Eureka, Zookeeper.

3. Сервисный слой (Service Layer)
Отдельные микросервисы, выполняющие конкретные бизнес‑функции.

4. Сервер авторизации (Authorization Server)
Обеспечивает безопасность микросервисов и управляет контролем доступа.

5. Хранилище данных
Базы данных приложения.

6. Распределённое кэширование
Повышает производительность за счёт уровней кэширования.

7. Асинхронная коммуникация
Очереди сообщений обеспечивают асинхронное взаимодействие между сервисами.

8. Визуализация метрик
Сервисы передают метрики в Prometheus, которые отображаются на панелях Grafana.

9. Агрегация логов
Централизованное логирование с использованием стека ELK.
❤‍🔥4👍42🤡1
Сравнение различных форматов данных. JSON vs CSV vs TOON sv YAML
👍24🤔3👏2🤡1
Machine Learning vs Deep Learning vs Generative AI (Машинное обучение vs Глубокое обучение vs Генеративный ИИ)
(продолжение в следующем посте)
1👍1
Machine Learning vs Deep Learning vs Generative AI (Машинное обучение vs Глубокое обучение vs Генеративный ИИ)
(продолжение предыдущего поста)

В чем реальная разница? Краткий обзор:

1️⃣ Машинное обучение (ML)
* Работает с структурированными данными (например, CSV‑файлы, файлы Excel).
* Использует простые алгоритмы, такие как деревья решений, метод опорных векторов (SVM) и др.
* Лучше всего подходит для таких задач, как выявление мошенничества, одобрение кредитов, классификация спама.
* Быстрое обучение, простая интерпретация результатов.
* Инструменты: scikit‑learn, XGBoost.

2️⃣ Глубокое обучение (DL)
* Подраздел машинного обучения, использующий нейронные сети (CNN, RNN, трансформеры).
* Работает со сложными данными — изображениями, аудио, длинными текстами.
* Лежит в основе систем распознавания лиц, голосовых помощников, машинного перевода.
* Требует больше вычислительных ресурсов и данных.
* Инструменты: TensorFlow, PyTorch, Keras.

3️⃣ Генеративный ИИ (GenAI)
* Подраздел глубокого обучения, создающий новый контент — текст, изображения, видео.
* Построен на трансформерах, таких как GPT, DALL·E, Stable Diffusion.
* Лежит в основе ChatGPT, Claude, Midjourney.
* Требует огромных объёмов данных и графических процессоров (GPU)/тензорных процессоров (TPU).
* Результат — не просто метка, а полноценный контент.
* Инструменты: Hugging Face, OpenAI API, Midjourney.
1👍1
Простой способ запомнить основные синусы и косинусы
🦄28🔥19🤓7👏54🥴3🤔1🤣1
В руководство по языку C# и .NET добавлены новые статьи:

Определение составных операторов присваивания
https://metanit.com/sharp/tutorial/3.63.php

Типизированные блоки расширений
https://metanit.com/sharp/tutorial/3.64.php

#csharp #dotnet
25👍10🫡3🤮2
4 типа виртуализации
(описание в следующем посте)
7👍3🥰1
4 типа виртуализации
(продолжение предыдущего поста)

1. Традиционная (Bare Metal) :
* Приложения используют одну операционную систему без изоляции процессов друг от друга.
* На рисунке показаны 3 приложения (APP 1, APP 2, APP 3), работающие в рамках одной ОС.
* Архитектура включает:
- Операционная система (Operating System);
- Физический сервер (Physical Server);
- Сетевая инфраструктура (Networking).
* Ключевая особенность: отсутствие изоляции между приложениями.

2. Виртуализированная(VM-based / на основе виртуальных машин):
* Используется аппаратная виртуализация: для каждой виртуальной машины (VM) запускается полноценная ОС.
* Пример: VM 1 с приложениями APP 1 и APP 2, VM 2 с приложением APP 3 и ОС Fedora.
* Архитектура включает:
- Гипервизор (Hypervisor) — эмулирует аппаратное обеспечение для каждой гостевой ОС (Guest OS);
- Гостевые ОС (Guest OS) в каждой VM;
- Физический сервер (Physical Server);
- Сетевая инфраструктура (Networking).
* Ключевая особенность: полная изоляция ОС в каждой VM благодаря гипервизору.

3. Containerized — Контейнеризация:
* Виртуализация на уровне ОС: изоляция процессов, а не полноценных ОС.
* На рисунке показаны контейнеры с приложениями (APP 1, APP 2) и базой данных (MySQL).
* Архитектура включает:
- Контейнеры (Container) с приложениями;
- Контейнерный движок (Container Engine) — управляет жизненным циклом контейнеров, сетевым взаимодействием и изоляцией;
- Хост-операционная система (Host Operating System) с общим ядром (shared kernel);
- Физический сервер (Physical Server);
- Сетевая инфраструктура (Networking).
* Ключевая особенность: лёгкость и быстрота запуска за счёт использования общего ядра ОС.

4. Контейнеры на виртуальных машинах:
* Комбинация виртуализации и контейнеризации, часто используется в облачных решениях.
* Пример: VM 1 с контейнерами APP 1 и APP 2, VM 2 с контейнером APP 3.
* Архитектура включает:
- Виртуальные машины (VM 1, VM 2) с гостевыми ОС (Guest OS, например, Fedora);
- Контейнерные движки (Container Engine) внутри каждой VM;
- Контейнеры с приложениями;
- Гипервизор (Hypervisor) для эмуляции аппаратного обеспечения гостевых ОС;
- Физический сервер (Physical Server);
- Сетевая инфраструктура (Networking).
* Ключевая особенность: сочетание изоляции VM и лёгкости контейнеров — баланс между безопасностью и производительностью.
7👍3🔥1
Крупные IT-компании обяжут к 1 июня 2026 года заключить с вузами и колледжами соглашения о мерах поддержки, сообщил замминистра цифрового развития Сергей Кучушев. Речь идет как о финансовой поддержке, так и помощи в подготовке кадров. Если же IT-компании не сделают это, их лишат льгот и брони для сотрудников от военной службы.

Представитель Минцифры сообщил, что нововведение коснется только IT-компаний с выручкой более 1 млрд руб. в год и с численностью сотрудников не менее 100 человек. Они должны будут выделять на поддержку высших учебных заведений до 5% от средств, сэкономленных благодаря налоговым льготам.

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

https://www.vedomosti.ru/technology/articles/2025/11/17/1155350-krupnie-it-kompanii-dolzhni-dogovoritsya-s-vuzami
🤡19👍6😁51👎1🔥1
В новой статье Института Брукингса предполагается, что революция искусственного интеллекта может развиваться по классической схеме «подъём-спад» — хотя и не на рынках, а в заработной плате.

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

Однако по мере того, как системы ИИ осваивают всё больше задач, спрос на работников в этих областях может снижаться, что потенциально вынуждает людей переходить на менее ценные или менее перспективные должности и сводит на нет эти первоначальные достижения.

Производство продолжает расти, даже несмотря на рост заработной платы, что показывает, как выгоды всё больше перетекают в капитал, а не в рабочую силу.

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

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

«Даже если автоматизация сначала повышает заработную плату, в конечном итоге она может привести к её значительному снижению», — отмечают авторы.

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

https://www.businessinsider.com/ai-impact-on-wages-boom-bust-academic-analysis-2025-11
10👍5🤔2🤡2
Вышла новая версия Spring - распространенного фрейморка для создания корпоративных приложений на Java/Kotlin - Spring Framework 7.0
В сообщении о релизе отмечается, что Spring Framework 7.0 — это начало нового поколения фреймворка. Его ключевые ориентиры — Java 25 и новейшая экосистема с открытым исходным кодом. Фреймворк станет основой для Spring Boot 4.0.

Это поколение Spring включает обновление базовых компонентов и зависимостей:

* поддержка Java 25 (последняя версия с долгосрочной поддержкой) при сохранении базовой версии Java 17;
* уровень API Jakarta EE 11: Servlet 6.1, JPA 3.2, Bean Validation 3.1;
* комплексная защита от null‑значений с помощью JSpecify;
* поддержка Jackson 3.0 (при этом сохраняется устаревшая поддержка Jackson 2.x);
* Kotlin 2.2;
* JUnit 6.0.

Первый релиз Spring Framework 7.0 содержит широкий набор новых функций, в том числе:

* программную регистрацию бинов;
* базовые функции обеспечения отказоустойчивости;
* JmsClient;
* версионирование API;
* настройку клиента HTTP‑интерфейса;
* RestTestClient.

https://spring.io/blog/2025/11/13/spring-framework-7-0-general-availability/

#spring #java #kotlin
6👍5🤔2😁1👀1
Вопрос века по SQL: какой результат возвратит запрос
🤩22🤣17👀8👍3🗿3👏1😁1🤔1🤯1💯1
В каждой системе есть наиболее нагруженный участок. Это первое, что нужно понять перед масштабированием. Масштабируется то, что нагружено, а не вся система целиком. Рекомендации:

1. Начните с паттерна доступа. Если операций чтения значительно больше, чем операций записи, не масштабируйте их вместе.
Пример: приложение электронной коммерции

* 99% трафика — поиск и просмотр товаров
* 1% трафика — обновление информации о товарах

Разделите их. Позвольте сервисам с высокой нагрузкой на чтение масштабироваться независимо. Оставьте потоки записи лаконичными и безопасными

2. Оптимизируйте хранилище под реальное узкое место. Одна основная БД для записи, несколько реплик для чтения

* Записи остаются консистентными
* Чтение остаётся быстрым
* Пиковые нагрузки не затрагивают источник достоверных данных

3. Добавьте кэш, где это действительно нужно. Кэшируйте:

* страницы товаров
* результаты поиска
* списки "Топ N"
* всё, что запрашивается многократно

Память быстрее диска. Микросекунды быстрее миллисекунд.
👍94💯3❤‍🔥11🔥1
Пользователи смартфонов Samsung заметили подозрительное приложение AppCloud от израильской компании ironSource. Оно обладает расширенными системными правами и его нельзя удалить без потери гарантии.

Пользователи обеспокоены объемом собираемых данных без их согласия. Приложение имеет доступ к биометрическим данным, IP-адресу и геолокации. Также сообщается, что AppCloud может скрытно устанавливать ПО.

При этом полностью удалить AppCloud невозможно — оно восстанавливается с обновлениями One UI, а отключение в настройках не останавливает его процессы.
Эксперты предполагают, что это лишь маркетинговая платформа, однако пользователи Samsung уже направили компании запросы с требованиями предоставить официальные разъяснения, передает портал.


https://www.phonearena.com/news/concern-over-unremovable-spyware-some-galaxy-phones_id175777
🤡27🤬7🤔6
Краткий совет по Linux:

Нужно посмотреть, какие файлы были недавно изменены?

Используйте команду find с опцией -mmin, чтобы проверить файлы, изменённые в определённом временном промежутке:

find . -type f -mmin -10


Эта команда выводит список всех файлов в текущей директории, которые были изменены за последние 10 минут.

Полезно при отслеживании недавних изменений или отладке активности файлов.

#linux
👍16🔥41🥰1
В руководство по языку C# и .NET добавлены новые статьи:

Приложения на основе файлов
https://metanit.com/sharp/tutorial/24.2.php

Нововведения в C# 14
https://metanit.com/sharp/tutorial/23.4.php

#csharp #dotnet
14👍13🔥5🤝1
Cloudflare раскрыла причину масштабного сбоя, из-за которого вчера часть инфраструктуры компании (и с ней многие сайты) не работала более 3 часов.
Сбой произошёл после изменения в структуре БД, после чего файл с параметрами для противодействия ботам увеличился в два раза. В БД образовались дублирующиеся таблицы, при том, что SQL-запрос для формирования файла просто выводил все данные из всех таблиц по ключу, без отсеивания дубликатов.

SELECT
name,
type
FROM system.columns
WHERE
table = 'http_requests_features'
order by name;


Созданный файл стал применяться для обработки входных запросов. В обработчике, использующем данный файл для проверки на боты, указанные в файле параметры сохранялись в оперативной памяти. Для защиты от излишнего расхода памяти в коде был предусмотрен лимит на размер файла. Обычно фактический размер файла был значительно меньше выставленного органичения, но после дублирования таблиц превысил лимит. В итоге в обработчике срабатывало аварийное завершение, которое блокировало дальнейший проброс трафика. Ошибка была вызвана использованием в коде на языке Rust метода unwrap() с типом Result:

// Fetch edge feature based on 'input' struct into ['Features'] buffer.
pub fn fetch_features(
&self,
input: &dyn BotsInput,
features: &mut Features,
) -> Result<(), (ErrorFlags, i32)> {
// update feature checksum (lower 32 bits) and copy edge feature names
features.checksum &= 0xFFFFFFFF00000000;
features.checksum |= u64::from(self.config.checksum);

let (feature_values, _) = features
.append_with_names(self.config.feature_names)
.unwrap(); // Здесь возникла ошибка

Ok(())
}

Когда значение Result имеет состояние "Ok", метод unwrap() возвращает связанный с этим состоянием объект, но если результат не является успешным - вызов приводит к аварийному завершению (вызывается макрос "panic!").

https://blog.cloudflare.com/18-november-2025-outage/
😁2812👍11🔥2🤯2
Microsoft выпустил новое поколение свой СУБД - SQL Server 2025.
Основные изменения:

- Интеграция ИИ непосредственно в ядро ​​SQL Server, что обеспечивает расширенный семантический поиск для более глубокого анализа и понимания естественного языка в корпоративных данных.
Управление моделями встроено в T-SQL, поддерживая бесшовную интеграцию с Microsoft Foundry, Azure OpenAI Service, OpenAI, Ollama и другими системами, что позволяет безопасно разворачивать их где угодно, как локально, так и в облаке. Разработчики могут легко переключаться между моделями, не изменяя код, а такие важные элементы ИИ, как векторное встраивание, фрагментация текста и индексация DiskANN, поддерживаются нативно.

- Большие возможности для разработчиков SQL за последнее десятилетие, оптимизируя разработку и повышая производительность. Встроенная поддержка JSON, REST API, регулярных выражений и нечеткого соответствия строк обеспечивает более эффективное обогащение и проверку данных. Потоковая передача событий изменений позволяет создавать приложения, управляемые событиями в режиме реального времени.

- Инструменты SQL. SQL Server 2025 предлагает важные обновления для всей платформы данных. SQL Server Management Studio (SSMS 22) уже доступна для всех пользователей и предлагает официальную поддержку SQL Server 2025, улучшенную поддержку ИИ и поддержку ARM64. SSMS 22 также включает поддержку ИИ при установке рабочей нагрузки GitHub Copilot, которая использует ту же подписку GitHub, что и GitHub Copilot в Visual Studio или VS Code.

- SQL Server 2025 продолжает развивать безопасность СУБД. Оптимизированная блокировка снижает потребление памяти для блокировки, минимизирует блокировку и повышает параллелизм.
Управление ресурсами пространства Tempdb повышает надежность сервера. Дополнительная оптимизация плана параметров делает производительность запросов более стабильной. SQL Server 2025 продолжает укреплять свои критически важные возможности, улучшая группы доступности Always On (AG) и возможности аварийного восстановления. Основное внимание уделяется более быстрому отказоустойчивому режиму, улучшенной диагностике и гибридной гибкости.

- SQL Server 2025 на Linux представляет несколько важных улучшений. Безопасность усилена поддержкой TLS 1.3, настраиваемыми политиками паролей и подписанными образами контейнеров. Поддержка платформ расширена и теперь включает RHEL 10 и Ubuntu 24.04, а производительность повышена благодаря поддержке tmpfs для tempdb и контейнерных развертываний. Расширенная аналитика доступна благодаря поддержке универсальных источников данных ODBC через PolyBase. Процесс разработки оптимизирован благодаря интеграции с Visual Studio Code для локального развертывания контейнеров с использованием расширения mssql и проверенных шаблонов развертывания в сотрудничестве с Red Hat, что обеспечивает поддержку современных рабочих нагрузок и сценариев ИИ в гибридных средах.

По словам Microsoft, предварительные тесты показывают, что SQL Server 2025, работающий на процессорах AMD EPYC с оборудованием HPE, обеспечивает ощутимый прирост производительности и ценности. Рабочая нагрузка объёмом 10 ТБ устанавливает новый рекорд производительности для SQL Server. По соотношению цена/производительность SQL Server 2025 демонстрирует улучшение на 4% в категории 3 ТБ по сравнению с предыдущими результатами.

https://techcommunity.microsoft.com/blog/sqlserver/sql-server-2025-is-now-generally-available/4470570

#sql #sqlserver #database
🤡13👍6🔥3😁2🤝2🌚1
Линус Торвальдс не возражает против кодирования с использованием Vibe, если оно не используется для чего-то действительно важного.

Создатель Linux и Git Линус Торвальдс раскрыл свое отношение к применению ИИ в разработке программного обеспечения в интервью, назвав себя «довольно позитивно» настроенным к Vibe-кодингу, но только как к способу проникновения в компьютерные вычисления, а не для разработки программного обеспечения в продакшене, где его, вероятно, будет сложно поддерживать, и особенно не для разработки ядра.

ПРи этом, по словам самого Торвальдса, он не использует и даже не экспериментирует с кодированием с помощью ИИ, хотя и заявил: «Уверен, люди рассматривают его даже в качестве кода ядра».

По его мнению, «ИИ — это всего лишь ещё один инструмент, подобно тому, как компиляторы освобождают людей от необходимости писать код на ассемблере вручную и значительно повышают производительность, но не заставляют программистов исчезать».

Торвальдс с нетерпением ждёт времени, когда ИИ «будет менее рекламируемым и больше будет похож на повседневную реальность, о которой никто постоянно не говорит».

https://www.theregister.com/2025/11/18/linus_torvalds_vibe_coding/?td=rt-3a
👍65🤡6😁4🤓3💩2🐳2🤪21🔥1🤔1