METANIT.COM – Telegram
METANIT.COM
5.79K subscribers
1.64K photos
80 videos
9 files
984 links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Мало известные, но тем не менее полезные возможности SQL: WHERE vs HAVING, WINDOW FUNCTIONS vs AGGREGATION и PARTITIONED-Таблицы
(описание в следующем посте)
Мало известные, но тем не менее полезные возможности SQL: WHERE vs HAVING, WINDOW FUNCTIONS vs AGGREGATION и PARTITIONED-Таблицы
(описание к изображению из предыдущего поста)

### WHERE vs HAVING
- WHERE: Используется для фильтрации строк перед группировкой. Например, в таблице с данными о продажах магазинов, WHERE позволяет выбрать только те строки, которые соответствуют определённым условиям (например, WHERE Store IN ('store1', 'store2')).
- HAVING: Применяется для фильтрации после группировки. Например, HAVING SUM(Sales) > 4000 отбирает группы, где сумма продаж превышает 4000.

### WINDOW FUNCTIONS vs AGGREGATION
- WINDOW FUNCTIONS: Позволяют выполнять вычисления по набору строк, связанных с текущей строкой. Они сохраняют все строки и добавляют вычисленные значения. Например, можно рассчитать сумму продаж для каждого магазина, сохраняя все строки.
- AGGREGATION: Использует функции, такие как SUM, COUNT, AVG, для объединения данных в одну строку. Например, SUM(Sales) GROUP BY Store суммирует продажи по каждому магазину.

### PARTITIONED Tables
- PARTITIONING: Это метод разделения таблицы на более мелкие части (разделы) для улучшения производительности и управления данными. На изображении показано создание четырёх разделов:
- Раздел 1: Данные до 2022-12-31.
- Раздел 2: Данные за 2023 год.
- Раздел 3: Данные за 2024 год.
- Раздел 4: Данные после 2025 года.

Пример кода для создания раздела:
CREATE PARTITION FUNCTION PF_OrderDate (DATE) 
AS RANGE RIGHT FOR VALUES ('2022-12-31', '2023-12-31', '2024-12-31');
4
Минцифры опровергло сообщения об утечке данных пользователей Max

Минцифры РФ после проверки опровергло информацию о том, что данные пользователей портала Госуслуг якобы утекли из национального мессенджера Max.

"Данные пользователей Госуслуг надёжно защищены. Специалисты Минцифры проверили информацию о якобы случившейся утечке из мессенджера Max, размещённую в анонимных каналах", - говорится в сообщении.

По данным Минцифры, "автором информации об утечке был выложен сэмпл, содержащий 15 записей, в которых были указаны якобы ID пользователей Госуслуг".

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

Также опровергли о взломе мессенджера в пресс-службе самого разработчика Max.


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

https://www.interfax.ru/russia/1053484
https://tass.ru/ekonomika/25390039
🤡22😁13👍31🤔1
Средняя зарплата профильных технических сотрудников софтверных компаний в 2024 году увеличилась на 13,5% по сравнению с 2023 г. и достигла примерно ₽200 тыс., что более чем в 2 раза больше, чем по всей экономике (около ₽88 тыс.). В то же время, разрыв в уровне зарплат по отношению с другими отраслями медленно, но всё же сокращается: прирост по всем отраслям, включая госсектор, составил 18,3%, что почти на 5 процентных пунктов больше, чем в софтверной индустрии.

В отдаленные времена средняя зарплата в софтверной индустрии росла намного быстрее аналогичного показателя для всей экономики России. В 2017 г. впервые очевидного преимущества разработчиков программного обеспечения по темпам роста зарплат выявлено не было. В 2018-2019 гг. рост средней зарплаты разработчиков ПО и увеличение номинальной начисленной заработной платы работников в целом по экономике РФ и вовсе сравнялись. В последующие годы, вплоть до 2024 года, у софтверной индустрии не было преимущества по темпам роста относительно всех отраслей (за исключением пандемийного 2020 года, за который разработчики ПО прибавили в своих доходах в среднем 11%, а по всем видам занятости прирост составил только 6%).

https://russoft.org/news/razrabotchiki-po-poteryali-lidiruyushhie-pozitsii-po-tempam-rosta-srednej-zarplaty-no-po-prezhnemu-uverenno-sohranyayut-ih-po-absolyutnoj-velichine/
🤔2
Динамика зарплат программистов по годам
😭18👌4🤨3🤬21
😐47🗿14🤡8👍6🤔4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядно как работает Null Pointer (нулевой указатель)
👍18
Microsoft предупредила пользователей USB-мыши и клавиатуры о проблемах с обновлением KB5066835 для Windows 11
На прошлой неделе Microsoft выпустила первое обновление KB5066835 для Windows 11 25H2. Теперь компания подтвердила, что после его установки USB-клавиатура и мышь могут не регистрироваться в среде восстановления Windows (WinRE): «После установки обновления безопасности Windows, выпущенного 14 октября 2025 года (KB5066835), USB-устройства, такие как клавиатура и мышь, не работают в среде восстановления Windows (WinRE). Эта проблема препятствует навигации по любым параметрам восстановления в WinRE. Обратите внимание, что USB-клавиатура и мышь продолжают нормально работать в операционной системе Windows».

https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-25H2#3696msgdesc

PS. Обновления Windows 11 - это какая-то катастрофа....
😁22🤡16💯2
Microsoft начала массовое развёртывание обновления Windows 11 версии 25H2 для всех совместимых устройств, включая ПК на Windows 10.

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

Кроме того, обновление включает улучшения для работы ПК Copilot+ AI и элементов интерфейса, таких как панель задач.

Владельцы ПК на Windows 10 или Windows 11 могут проверить наличие обновления через «Параметры» > «Центр обновления Windows» > «Проверить наличие обновлений». Если устройство готово к обновлению, появится опция «Загрузить и установить Windows 11 версии 25H2».

Полный список нововведений доступен на сайте Microsoft: https://support.microsoft.com/en-us/windows/inside-this-update-93c5c27c-f96e-43c2-a08e-5812d92f220d
😁4🤮42👍1🔥1
Формула жизни:
Осмысленная жизнь — это интеграл маленьких радостей каждого мгновения.
👍35🔥5🤡42👏2🍌1
Шпаргалка по алгоритмам машинного обучения
👍6🔥1👏1🤮1😨1
В руководство по языку Java добавлены новые статьи:

Асинхронные задачи FutureTask. Callable и Future
https://metanit.com/java/tutorial/8.13.php

Executor - исполнитель задач
https://metanit.com/java/tutorial/8.14.php

Координация выполнения асинхронных задач
https://metanit.com/java/tutorial/8.15.php

#java
❤‍🔥13👍4🔥2
НИУ ВШЭ представила исследование, где оценила ущерб авторов от использования ИИ в 1 трлн рублей

Расчёты проводились для профессий, наиболее подверженных рискам из-за использования ИИ. Всего выделено 12 таких групп. Наибольшие риски отмечены у переводчиков и лингвистов: к 2030 году доля генеративных произведений в этой сфере может достичь трети всего контента. На втором месте — писатели, поэты, литераторы и композиторы (28%), на третьем — программисты и разработчики приложений (26%). Далее следуют журналисты (24%) и специалисты по рекламе и маркетингу (22%).

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

Наибольшие потери от замещения труда ИИ понесут программисты и разработчики приложений — 542,3 млрд рублей. Далее следуют специалисты по рекламе и маркетингу — 169,9 млрд рублей, переводчики и лингвисты — 48,8 млрд рублей. Также с большим ущербом от распространения генеративного контента столкнутся писатели, поэты и литераторы — 42 млрд рублей,а ещё музыканты, певцы и композиторы — 25,25 млрд рублей.

https://www.vedomosti.ru/media/articles/2025/10/15/1146990-uscherb-dlya-avtorov
🤯16😱75🤬4🫡2🤷‍♂1👍1👎1😁1
Совет по Linux:

Нужно повторять команду каждые несколько секунд?

Используйте:
$ watch -n 2 df -h


Эта команда запустит команду "df -h" каждые 2 секунды.
Отлично подходит для отслеживания использования диска, нагрузки или изменения размера журнала.

Для завершения нажмите q.

#linux
🔥239👍5
В Общественной палате РФ предложили ввести идентификацию по паспорту для доступа к контенту 18+ в интернете
Член комиссии Общественной палаты РФ по общественной экспертизе законопроектов и иных нормативных актов Евгений Машаров сообщил, что значительная часть российских подростков имеет неограниченный доступ к контенту 18+, включая видеоролики блогеров с ненормативной лексикой, сценами насилия и пропагандой асоциального поведения, что приводит к формированию у молодёжи искажённых моделей поведения и утрате культурных ориентиров.

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

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

https://ria.ru/20251021/internet-2049496070.html
🤡32💩8👎5👍3😁31🤔1
15 эвристик для успешного проектирования систем:
(продолжение в следующем посте)
👍6🔥3👏2😁1
15 эвристик для успешного проектирования систем:
(продолжение предыдущего поста)

1. Задержка + Глобальный масштаб → CDN
↳ Доставляйте данные с пограничных серверов, чтобы сократить задержку

2. Чтение + Узкое место → Кэш
↳ Храните часто запрашиваемые данные в кэше, чтобы снизить нагрузку на базу данных

3. Запись + Резкий рост нагрузки → Очередь
↳ Ставьте операции записи в очередь для фоновой обработки в периоды высокой нагрузки

4. Распределённая система + Транзакции → Saga
↳ Используйте компенсирующие действия для обработки транзакций, затрагивающих несколько сервисов

5. ACID + Реляционные данные → SQL
↳ Используйте SQL‑базу данных для строгой согласованности и целостности транзакций

6. Гибкость + Масштабирование → NoSQL
↳ Используйте NoSQL для гибкости схемы и горизонтального масштабирования

7. SQL + Масштабирование → Шардинг БД
↳ Распределяйте и разбивайте данные по шардам для масштабирования

8. Нагрузка + Рост → Масштабирование наружу (Scale Out)
↳ Добавляйте серверы для обработки дополнительной нагрузки

9. Трафик + Надёжность → Балансировка нагрузки
↳ Равномерно распределяйте запросы для повышения производительности

10. Основное + Сбои → Резервирование
↳ Дублируйте ключевые сервисы, чтобы избежать единичных точек отказа

11. Надёжность + Сбои → Репликация
↳ Реплицируйте данные для обеспечения доступности и возможности восстановления

12. Запросы + Резкий рост → Ограничение частоты (Throttle)
↳ Избегайте перегрузки сервера, ограничивая количество запросов

13. Нагрузка + Резкий рост → Автомасштабирование
↳ Автоматически увеличивайте или уменьшайте мощность серверов для управления нагрузкой

14. Реальное время + Обновления → WebSockets
↳ Используйте WebSockets для двусторонней realtime-коммуникации

15. Повтор + Безопасность → Идемпотентность
↳ Используйте идемпотентность, чтобы повторять операции без побочных эффектов
❤‍🔥5🔥4👏3
Microsoft устранила уязвимость ASP NET Core с рейтингом CVSS 9,9 (наиболее высоким уровнем уязвимости). Уязвимость находится в компоненте веб-сервера Kestrel и позволяет обойти систему безопасности.

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

В частности, подменой запросов можно выполнить такие действия, как вход в систему под другим пользователем, обход проверок на подделку межсайтовых запросов или проведение атак с использованием инъекций. Риски, по его словам, зависят от того, как написано приложение, и негативные последствия маловероятны, «если только код вашего приложения не делает что-то странное и не пропускает ряд проверок, которые он должен выполнять при каждом запросе».

Kestrel — это встроенный веб-сервер ASP NET Core, который широко используется, иногда через обратный прокси-сервер, а иногда и напрямую.
Уязвимость, по всей видимости, существует уже давно и затрагивает все поддерживаемые версии ASP NET Core, включая версии 8, 9 и предварительную версию 10, и даже ASP NET Core 2.3, работающую на платформе .NET Framework, доступной только для Windows. Разработчики могут установить исправление для .NET SDK, загрузив последнюю версию, или обновить пакет Kestrel.Core до последней версии (2.3.6) через менеджер пакетов NuGet.

https://github.com/dotnet/aspnetcore/issues/64033#issuecomment-3403054914
11👍5🤔3
This media is not supported in your browser
VIEW IN TELEGRAM
Latency (Задержка) vs. Throughput (пропускная способность)

Иногда приложение может работать медленно даже при нормальной пропускной способности сети. Задержка (latency) и пропускная способность (throughput) описывают два совершенно разных аспекта производительности

Задержка измеряет время ожидания для каждого пакета данных. Это то, что ощущают пользователи, когда нажимают кнопку, — реактивность системы. Это время, которое требуется одному запросу, чтобы пройти путь от сервера до конечного устройства. В него входят:
* время обработки на сервере;
* задержки из‑за очередей;
* распространение сигнала по сети;
* задержки при передаче;
* подключение «последней мили» до устройства пользователя.

Пропускная способность - это количество данных, успешно доставленных за определённый промежуток времени. Речь о том, сколько пакетов проходит через канал. Пропускная способность — это ёмкость системы. Высокая пропускная способность означает, что система справляется с нагрузкой, не «задыхаясь».
🍓15🔥32👍1👏1
Лестница проектирования систем
(продолжение в следующем посте)
👍11
Лестница проектирования систем
(продолжение предыдущего поста)

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

### ОСНОВЫ

Вы не можете масштабировать то, чего не понимаете.

Цель этого уровня — понять базовые строительные блоки того, как данные поступают в систему и выходят из нее.

Ступеньки этого уровня:

API и коммуникация

Знайте REST, gRPC и GraphQL; не только синтаксис, но и когда каждый из них подходит.

Балансировка нагрузки и обратные прокси

Распределение запросов, поддержание согласованности сессий и предотвращение единых точек отказа.

Кэширование

Мастерство в том, что кэшировать, когда аннулировать и как политики TTL и вытеснения влияют на производительность.

Базы данных и хранилище

Изучение компромиссов между реляционными и нереляционными системами, индексирования, нормализации (до BCNF) и транзакций.

Сетевые технологии и HTTP

Понимание того, как данные перемещаются: запросы, ответы, задержки и пропускная способность.



### МЕХАНИКА

Теперь вы создаете системы, а не просто сервисы.

Цель этого уровня — создать системы, которые выдерживают реальные условия: задержки, сбои и параллелизм.

Основные моменты этого уровня:

Безопасность и аутентификация

Охватываем основы: TLS, JWTs, OAuth2, ограничение скорости и дизайн с минимальными привилегиями.

Доступность и надежность

Понимание SLA, SLI и SLO; и проектирование для плавного снижения производительности, а не слепого времени безотказной работы.

Наблюдаемость

Реализация логирования, трассировки (OpenTelemetry, Sentry) и метрик для анализа, а не шума.

Согласованность данных и транзакции

Применение шаблонов распределенных транзакций (SAGA, 2PC, Outbox, CDC).

Асинхронное взаимодействие

Использование очередей сообщений и шинков событий для децентрализации систем (Kafka, RabbitMQ, MQTT и т.д.).

Шаблоны масштабирования

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


### ПРОДВИНУТЫЙ УРОВЕНЬ

Теперь вы не спрашиваете «как это построить», а «как это ведет себя под нагрузкой».

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

Основные моменты этого уровня:

Инженерия устойчивости

Предохранители, повторные попытки с отступами, тестирование на хаос и разделение систем.

Оптимизация производительности

Настройка узких мест на всех уровнях: БД, кэш, сеть, сериализация и ввод-вывод.

Эволюция системы

Проектирование для изменений: сине-зеленые развертывания, флаги функций и плавные миграции.

Моделирование данных в масштабе

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

Архитектуры, управляемые событиями

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

Теория распределенных систем

CAP, PACELC, идемпотентность, конечная согласованность; и когда каждый компромисс приемлем.
👍144❤‍🔥2🔥2👎1