METANIT.COM – Telegram
METANIT.COM
5.86K subscribers
1.67K photos
81 videos
9 files
1.03K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Четыре подхода в машинном обучении:
(продолжение предыдущего поста)

1. Transfer Learning (Перенос обучения):
Это метод, при котором модель, обученная на одной задаче, используется как основа для решения другой, связанной задачи.
- Используется предварительно обученная сеть, которая не обучается заново.
- Новые данные проходят через эту сеть, и результат используется для решения задачи.

2. Fine Tuning (Тонкая настройка):
Процесс дообучения предварительно обученной модели на новом наборе данных, чтобы адаптировать её к конкретной задаче.
- Предварительно обученная сеть дообучается на новых данных.
- Добавляются новые слои, которые адаптируются к конкретной задаче.

3. Multi-task Learning:
Метод, при котором одна модель обучается выполнять несколько задач одновременно, используя общие и специализированные слои.
- Общая сеть используется для решения нескольких задач одновременно.
- Для каждой задачи добавляются отдельные ветви, которые обучаются параллельно.

4. Federated Learning (Федеративное обучение):
Подход, при котором обучение модели происходит на устройствах пользователей, а не на центральном сервере, что обеспечивает конфиденциальность данных.
- Модель обучается на устройствах пользователей с использованием их приватных данных.
- Обновленные веса отправляются на сервер, где они агрегируются и возвращаются обратно для дальнейшего обучения.
6🤮1
Рынок IT массово ищет специалистов по «вайб-кодингу»

Число вакансий с требованием навыка «вайб-кодинг» — программирования с помощью нейросетей — с начала 2025 года выросло на 27%. Об этом свидетельствуют данные исследования hh.ru. Медианная зарплата на таких позициях в Москве и Петербурге достигает 140 тыс. руб.

Подход, при котором разработчик формулирует задачу ИИ на естественном языке, а тот генерирует код, ускоряет работу и снижает порог входа в профессию. В «СберТехе» его называют стратегическим преимуществом для бизнеса.

Однако эксперты предупреждают о рисках: код становится более «тяжелым», уязвимым и дорогим в поддержке. Для минимизации угроз в компании возвращают обязательный код-ревью и фиксируют ответственность за проверку решений ИИ.

https://www.kommersant.ru/doc/7990356
https://www.kommersant.ru/doc/7990371
🤣28🤡6👎4👍2
Вайб-кодинг это деградация или прогресс?
Anonymous Poll
24%
Прогресс
76%
Деградация
🤣20🤔8🤷‍♂7😭3🌚1
Исследователи Стэнфордского университета провели исследование на тему влияния ИИ на занятость и пришли к выводу, что ИИ затрудняет поиск работы для начинающих технических специалистов

В начале карьеры (в возрасте 22–25 лет) в профессиях, связанных с искусственным интеллектом, наблюдается снижение занятости на 13%

Сокращение занятости наблюдается в основном в тех профессиях, где ИИ, скорее всего, автоматизирует, а не дополняет человеческий труд

Напротив, занятость работников в менее подверженных воздействию ИИ областях и более опытных работников в тех же профессиях оставалась стабильной или продолжала расти.

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

Таким образом, генеративный ИИ уже начал оказывать значительное влияние на занятостьна начальном уровне.

Само исследование: https://digitaleconomy.stanford.edu/wp-content/uploads/2025/08/Canaries_BrynjolfssonChandarChen.pdf
👍7🤬4👎2😢2
Шпаргалка по утилите sar для мониторинга производительности в Linux #linux
10👍4😁2
Проект LLVM представил новый релиз - LLVM 21.1.0 - инструментарий, который объединяет компиляторы, оптимизаторы и генераторы кода и который используется многими системами и компиляторами.
И также вышел новая верси компилятора Clang - Clang 21, поддерживающий языки программирования C, C++ и Objective-C
Основные нововведения в Clang 21:

Для С++:
- реализована возможность использования константных выражений в ассемблерных вставках, определяемых директивой "asm":
- добавлена возможность вычисления на этапе компиляции (в контексте константного выражения) лямбда-функций
- добавлены расширенные варианты выражений "new" и "delete", поддерживающие аргумент "std::type_identity<T>", через который можно указать информацию о типе объекта, для которого выделяется или освобождается память.
- добавлена возможность использования синтаксиса "..." для указания оставшегося числа элементов последовательности.
- добавлена возможность применения структурированного связывания (structured binding) в качестве условия в операторах "if" и "switch".
- добавлены новые префиксы для восьмеричных литералов - "0o" и "0O", а также восьмеричные и шестнадцатеричные escape-последовательности "\o{...}" и "\x{...}". Поддержка восьмеричных литералов 0xxx объявлена устаревшей. Например, "0o123" и "\o{123}" вместо "0123".
- добавлен оператор "_Countof" для определения количества элементов в массиве. Также добавлен заголовочный файл stdcountof.h, определяющий вариант макроса "countof", реализованный через "_Countof".

Для Си стандарта C23:
- разрешено переопределять tag‑типы (struct, union, enum) в пределах одного блока трансляции, если повторные определения структурно эквивалентны (то же число членов, одинаковые типы и имена тегов).
- упрощено использование списков с переменным числом аргументов (variadic)
- добавлена совместимая с GCC встроенная функция "__builtin_c23_va_start()", улучшающая поведение диагностики для макроса va_start() в режиме C23.
- разрешено использовать квалификатор "restrict" для типов массивов с элементами-указателями.

Также добавлен ряд новых предупреждений и флагов компилятора. Расширены средства диагностики и статического анализа, добавлены новые проверки, связанных с диагностикой.
Улучшены бэкенды для архитектур ARM, Aarch64, AMDGPU, x86, RISC-V, LoongArch, MIPS и PowerPC. В бэкенд для RISC-V добавлена экспериментальная поддержка ассемблера для расширений Qualcomm uC, Andes и SiFive.

https://discourse.llvm.org/t/llvm-21-1-0-released/88066
🔥10👍43🤮1
This media is not supported in your browser
VIEW IN TELEGRAM
Как выглядит современный вайб-кодинг: чел делает миксы параллельно с кодингом
🤮43🤡217🤣6👎2🥴2👍1🤯1
Шпаргалка по политикам аудита событий в Windows #windows
🔥5🤔2👏1
Как работает MongoDB
(продолжение в следующем посте)
🔥5👏2🤔2🤮1
Как работает MongoDB
(продолжение предыдущего поста)

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

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

MongoDB в основном написан на C++, но использует JavaScript для своей оболочки и Python для некоторых инструментов и драйверов.

📌 Как рабоатет MongoDB
* По своей сути MongoDB — это NoSQL, документоориентированная база данных.
* Традиционные реляционные базы данных хранят данные в таблицах и строках.

Но:
* MongoDB «внутренне» хранит данные в бинарном формате, называемом BSON (Binary JSON).
* BSON — это расширенный набор JSON.
* Он может представлять всё, что может JSON, плюс дополнительные типы данных, такие как даты и бинарные данные.
* BSON более компактен, чем JSON, что уменьшает объём памяти и повышает производительность.
* Такая структура позволяет более естественно представлять реальные объекты и связи между ними.

📌 Разберём архитектуру MongoDB

1. Модель документов
Гибкие, похожие на JSON документы хранят данные, позволяя использовать различные структуры и вложенные объекты.

2. Коллекции
Группы документов, аналогичные таблицам, но без схемы, обеспечивающие гибкую организацию.

3. mongod
Основной процесс, обрабатывающий хранение, запросы и администрирование (основной демон-процесс).

4. mongos (если используется шардирование)
Маршрутизирует запросы в распределённом кластере к правильным разделам данных (соответствующим шардам).

5. Реплика-сеты
Несколько узлов поддерживают копии данных, обеспечивая высокую доступность и отказоустойчивость.

6. Шардирование
Горизонтальное масштабирование путём распределения данных по нескольким серверам для больших наборов данных и высокой нагрузки.

7. Индексы
Структуры данных для ускорения запросов, поддерживающие различные типы для разных шаблонов доступа.

8. WiredTiger
Механизм хранения по умолчанию, оптимизированный для использования памяти и диска с контролем параллелизма.

9. Фреймворк агрегации
Мощный конвейерный фреймворк для сложного анализа и преобразования данных.

10. Язык запросов
Выразительный язык для фильтрации, сортировки, проецирования и агрегации данных.

📌 Некоторые варианты использования
1. Управление контентом.
2. Аналитика в реальном времени.
3. Интернет вещей (IoT).
4. Мобильные приложения.
5. Каталоги продукции.

📌 Проблемы
1. Транзакции
Использует модель «snapshot isolation», которая может иметь последствия для приложений, требующих строгих гарантий ACID.

2. Моделирование данных
Гибкость требует продуманного проектирования.

3. Соединения
MongoDB не поддерживает традиционные SQL-соединения.

4. Операционные затраты
MongoDB может требовать больше операционных знаний.

5. Стоимость
MongoDB может быть дорогим в эксплуатации, особенно при масштабировании.
🔥53👏2🤮1
Отличия между паттернами MVC vc MVP vs MVVM vs VIPER
👍13🤔13🫡5
В России начинают готовить врачей с IT-навыками

Цифровая грамотность становится условием для работы врачом; некоторые вузы в мире и в России начинают готовить медицинские кадры с базовыми IT-навыками, заявил министр здравоохранения РФ Михаил Мурашко.

"Все диагностические приборы, которые мы сегодня используем, или приборы, которые используются для лечения - они совершенно иного формата. Цифровая грамотность - это условие (...). В мире уже ряд вузов и наши начинают готовить самые передовые (медицинские кадры - ИФ) с базовыми IT-навыками, которые будут привносить изменения не только как специалисты-медики, но и IT-специалисты, и у них сегодня кардинальное преимущество", - сказал Мурашко на Всероссийском форуме волонтеров-медиков в четверг.

По его словам, раньше говорили о том, что врачу необходима цифровая грамотность на уровне пользователя. "Сегодня говорить о цифровой грамотности только на уровне пользователя - это неправильно", - отметил министр. Само программирование в настоящее время становится более доступным с использованием искусственного интеллекта, добавил глава Минздрава РФ.
https://www.interfax.ru/russia/1044572

PS. А писать код врачи будут также понятно, как они пишут рецепты
😁27😱6🤡4🤣4👍1💩1
22 базовых шаблона проектирования облачных систем

Шаблоны обеспечения доступа

1. Предохранитель (Circuit Breaker)
Останавливает сервис от повторных попыток выполнения неудачной операции.

2. Повтор (Retry)
Позволяет приложению обрабатывать временные сбои при попытке подключения к сервису или сетевому ресурсу.

3. Регулирование нагрузки (Throttling)
Контролирует потребление ресурсов, используемых экземпляром приложения, отдельным клиентом или целым сервисом.

4. Мониторинг работоспособности (Health Endpoint Monitoring)
Отслеживает состояние приложения и его компонентов.

5. Выравнивание нагрузки на основе очереди (Queue-Based Load Leveling)
Использует очередь как буфер между задачей и сервисом, который она вызывает.

6. Супервизор планировщика агентов (Scheduler Agent Supervisor)
Координирует набор действий в распределённом наборе сервисов и других удалённых ресурсов.

Шаблоны управления данными

7. Кэширование по требованию (Cache-Aside)
Загружает данные по запросу из хранилища данных в кэш.

8. CQRS
Разделяет операции чтения данных от операций обновления данных с помощью отдельных интерфейсов.

9. Event Sourcing
Использует хранилище только для добавления записей, чтобы фиксировать полную серию событий, описывающих действия над данными в домене.

10. Materialized View
Создаёт предварительно заполненное представление данных в средах, где исходные данные не подходят для запросов.

11. Шардинг (Sharding)
Разделяет хранилище данных на набор горизонтальных разделов или шардов.

12. Valet Key
Использует токен или ключ, который предоставляет клиентам ограниченный прямой доступ к определённому ресурсу или сервису.

Шаблоны проектирования и реализации

13. Посредник (Ambassador)
Использует вспомогательный сервис, который отправляет сетевые запросы от имени потребительского сервиса или приложения.

14. Anti-corruption Layer
Реализует фасад между новыми и устаревшими приложениями.

15. Бэкенды для фронтендов (BFF)
Создаёт отдельные бэкенд-сервисы для использования конкретными фронтенд-приложениями или интерфейсами.

16. Консолидация вычислительных ресурсов (Compute Resource Consolidation)
Объединяет несколько задач или рабочих нагрузок на меньшее количество вычислительных ресурсов.

17. Внешнее хранилище конфигурации (External Configuration Store)
Перемещает информацию о конфигурации из пакета развёртывания приложения в централизованное хранилище.

18. Gatekeeper
Защищает бэкенд-сервисы и API от запросов из разных источников (CORS), не имеющих действительных токенов аутентификации.

19. Sidecar
Развёртывает компоненты приложения в отдельный процесс или контейнер для обеспечения изоляции и инкапсуляции.

20. Strangler Fig
Постепенно мигрирует устаревшую систему путём постепенной замены определённых функциональных элементов новыми приложениями и сервисами.

Шаблоны обмена сообщениями

21. Конкурирующие потребители (Competing Consumers)
Позволяет нескольким параллельным потребителям обрабатывать сообщения, полученные по одному каналу обмена сообщениями.

22. Очередь приоритетов (Priority Queue)
Обрабатывает сообщения на основе их приоритета.
6💘3🔥1👏1
Буферизация страниц данных MySQL и Postgres

Движок InnoDB в MySQL использует подход, обеспечивающий больший контроль: с помощью innodb_flush_method='O_DIRECT' он может обойти большую часть накладных расходов на кэш страниц ОС, предпочитая управление самостоятельно. innodb_buffer_pool_size определяет объём оперативной памяти, используемый для этого кэша. На выделенных серверах баз данных этот размер часто составляет 70 %+ от общего объёма оперативной памяти.
Он делит это пространство на несколько подэкземпляров буфера, каждый из которых поддерживает двухчастный список LRU-страниц: список новых страниц и список старых страниц. Новые страницы попадают в старый список и должны сохраняться без вытеснения в течение определённого времени (innodb_old_blocks_time), прежде чем им будет разрешено попасть в список новых страниц. Это предотвращает перегрузку при массовых операциях, таких как сканирование таблиц.

Postgres применяет подход, реализующий относительно более простой кэш, полагаясь при этом на кэш страниц ОС для управления загрузкой и извлечением страниц из оперативной памяти. Структура shared_buffers управляет размером и часто устанавливается на уровне ~30% от доступной оперативной памяти, оставляя достаточно места для кэша страниц ОС.
Postgres использует алгоритм «часовой очистки» для вытеснения. Каждая страница в shared_buffers ведёт счётчик, который увеличивается при использовании (до определённого предела) и уменьшается при заполнении. Когда счётчик ссылок достигает нуля, страница может быть заменена другой страницей.
8🔥1👏1
Иллюстрация к предыдущему посту
5🔥2🥰1
Вице-президент по безопасности компании Anchore Джош Брессерс проанализировал данные проекта ecosystems и пришёл к выводу, что большинство опенсорс-проектов поддерживается одиночными разработчиками.
ecosystems каталогизирует проекты с открытым исходным кодом. Сейчас в базе данных сайта насчитывается 11,8 млн проектов. Около 7 млн из них разработчики поддерживают в одиночку. Существуют проекты и с сотнями сопровождающих, но их число гораздо ниже.

На основе анализа проектов NPM выяснилось, что множество проектов созданы одним человеком. Если говорить о пакетах с более чем 1 млн загрузок в этом месяце, то у половины из них всего один сопровождающий. Таким образом, примерно половину из 13 тысяч самых скачиваемых пакетов NPM курируют разработчики-одиночки.
Всего в экосистеме NPM с 4 млн проектов насчитали около 900 тысяч сопровождающих.
https://opensourcesecurity.io/2025/08-oss-one-person/

На первом графике количество проектов и количетсво их поддерживающих, второй график - для пакетов с более 1 млн загрузок
❤‍🔥9👏4🐳4
Упрощенная структура ядра Linux #linux
👍10🤓4🔥2
Процесс обновления Windows в 90-х (судя по ссылке, в Windows 95)
Как по мне, раньше процесс обновления был лучше.
🔥28😁16👍7522👏1🤩1😭1
REST vs GraphQL
(продолжение в следующем посте)
🥴73👍2👏1