METANIT.COM – Telegram
METANIT.COM
5.76K subscribers
1.64K photos
80 videos
9 files
975 links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Линус Торвальдс и Линус Себастьян из Linus Tech Tips провели сборку идеального ПК для Linux

Для создания мощной рабочей системы Линусы выбрали:

- процессор CPU AMD Ryzen Threadripper 9960X с 24 ядрами и 48 потоками;

- ОЗУ Kingston 16 ГБ DDR5 х4;

- видеокарту Intel Arc B580;

- материнскую плату GIGABYTE TRX50 AERO D;

- SSD-накопитель Samsung 9100 PRO 2TB;

- кулер Noctua NH-U14S TR5-SP6;

- блок питания Seasonic PRIME TX-1600 1600W 80+ Titanium;

- системный блок Fractal Design Torrent E-ATX Case;

- 31.5-дюймовый монитор Asus ProArt PA32QCV (6K HDR).

Всю сборку выполнил Линус Себастьян, а Торвальдс только пояснял, какие элементы ему больше нравятся (воздушное охлаждение, ECC-память).

https://youtu.be/mfv0V1SxbNA
https://linustechtips.com/topic/1627666-building-the-perfect-linux-pc-with-linus-torvalds/
🤡24🐳177🤣3🏆3😎3👀1
Механизмы авторизации API
(продолжение в следующем посте)
3💯2👏1
Механизмы авторизации API
(продолжение к предыдущему посту)

Контроль разрешений пользователей в современных API

1. Управление доступом на основе ролей (RBAC, Role‑Based Access Control)

→ Определение
✓ Назначает разрешения на основе роли пользователя (администратор, редактор, зритель).

→ Как это работает
✓ Пользователи → Назначенные роли → Роли → Предоставление разрешений.

→ Оптимально для
✓ Систем с чётко определёнными группами разрешений.
✓ Панелей управления, SaaS‑приложений, CMS‑платформ.

2. Управление доступом на основе атрибутов (ABAC, Attribute‑Based Access Control)

→ Определение
✓ Принимает решения об авторизации на основе атрибутов.

→ Атрибуты включают
✓ Атрибуты пользователя (возраст, отдел, подписка).
✓ Атрибуты ресурса (тип, владелец).
✓ Атрибуты среды (время, местоположение).

→ Оптимально для
✓ Предприятий с сложными и динамическими правилами доступа.

3. Фреймворк авторизации OAuth 2.0

→ Определение
✓ Делегированная авторизация, которая позволяет сторонним приложениям получать доступ к ресурсам без раскрытия паролей пользователей.

→ Как это работает
✓ Аутентификация через провайдера → Выдача токена доступа → API проверяет токен.

→ Распространённые потоки
✓ Код авторизации (Authorization Code).
✓ Учётные данные клиента (Client Credentials).
✓ Потолок для устройств (Device Flow).

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

4. OpenID Connect (OIDC)

→ Определение
✓ Уровень идентификации, построенный на базе OAuth 2.0.
✓ Добавляет проверку личности пользователя с помощью ID‑токенов.

→ Что предоставляет
✓ Проверенную идентификацию.
✓ Единый вход (SSO, Single Sign‑On).
✓ Стандартные утверждения (имя, электронная почта и т. д.).

→ Оптимально для
✓ Систем аутентификации и авторизации.

5. Авторизация с помощью JSON‑веб‑токенов (JWT, JSON Web Token)

→ Определение
✓ Авторизация осуществляется с помощью подписанных JSON‑токенов.

→ Как это работает
✓ Пользователь входит в систему → Сервер выдаёт JWT, содержащий утверждения → Клиент отправляет токен с каждым запросом.

→ Преимущества
✓ Отсутствие состояния (stateless).
✓ Идеально для распределённых микросервисов.

→ Оптимально для
✓ Мобильных приложений, одностраничных приложений (SPA), современных REST API.

6. Управление доступом на основе политик (PBAC, Policy‑Based Access Control)

→ Определение
✓ Решения о доступе принимаются с использованием централизованных политик.

→ Как это работает
✓ Механизм политик проверяет правила → Разрешает или отклоняет запрос.

→ Оптимально для
✓ Государственных систем.
✓ Среды с жёсткими требованиями соответствия.

7. Списки контроля доступа (ACL, Access Control Lists)

→ Определение
✓ Разрешения настраиваются непосредственно для каждого ресурса.

→ Как это работает
✓ Ресурс содержит список разрешённых пользователей и действий.

→ Оптимально для
✓ Файловых систем.
✓ Моделей безопасности на уровне ресурсов.

Краткое резюме

✓ RBAC → На основе ролей.
✓ ABAC → На основе атрибутов.
✓ OAuth 2.0 → Делегированный доступ.
✓ OIDC → Уровень идентификации.
✓ JWT → Без состояния, на основе токенов.
✓ PBAC → На основе политик.
✓ ACL → На уровне ресурсов.
3👍3👏1
Вкратце про математические деревья
🔥11🤔8👍1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Линус Торвальдс о резервном копировании данных:

«Только слабаки используют резервное копирование на ленту: настоящие мужчины просто загружают свои важные данные на FTP, и пусть остальной мир их копирует" - Линус Торвальдс, 1996 г., LKML
(Оригинал: "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it")

«Мой подход к хранению данных таков: я загружаю их в интернет, и если они стоят того, чтобы их сохранить, кто-то другой сохранит их для меня». — Линус Торвальдс, 2025 г., Linus Tech Tips
(Оригинал: "My data storage approach is: I upload it to the internet, and if it's worth saving, somebody else will save it for me.")
😁49🤡11🔥84🥴3🦄3😱2💯1🤣1
Стратегии работы с базами данных
(продолжение в следующем посте)
4👍2👏1
Стратегии работы с базами данных
(продолжение предыдущего поста)

1. Когда нагрузка на чтение и запись высокая (сбалансированная нагрузка):
* Используйте основную базу данных для всех операций записи.
* Передавайте интенсивный трафик чтения на несколько реплик для чтения через асинхронную репликацию.
* Применяйте кэш Redis для обработки «горячих» ключей и снижения нагрузки на базу данных.
* Учитывайте, что иногда могут возникать промахи кэша (cache miss) — в таких случаях обращение будет перенаправлено к основной базе данных.
* Группируйте операции записи и оптимизируйте индексы, чтобы поддерживать стабильную производительность.

2. Когда нагрузка на запись постоянно растёт:
* Разделите базу данных на шарды (сегменты).
* Каждый шард хранит часть набора данных, благодаря чему операции записи распределяются.
* Ваше приложение должно уметь направлять запросы к нужному шарду.
* Подходит для масштабного развёртывания, но может быть сложным при выполнении комплексных запросов или транзакций между шардами.

3. Когда требуется гибридная масштабируемость (NewSQL):
* Системы вроде CockroachDB работают как SQL, но масштабируются как NoSQL.
* Встроенные функции автоматического шардирования и перераспределения нагрузки избавляют от необходимости вручную управлять шардами.
* Обеспечивается глобальная согласованность данных между узлами.
* Подходит для мультирегиональных приложений, где важны строгая согласованность и отказоустойчивость.

4. Когда требуются операции с высокой степенью надёжности (финансовые операции):
* Система разрабатывается специально для эконом. операций, например, бухгалтерского учёта, платежей...
* Очень высокая скорость работы, устойчивость к сбоям и подход, основанный на формальной верификации.
* В первую очередь обеспечивается корректность — предотвращаются двойные списания, условия гонки и частичные записи.
* Идеально подходит для операций с деньгами, когда каждая транзакция должна быть точной, надёжной и безопасной.
🔥5🥰1👏1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Как двоичные данные транслируются в инструкции ассемблера
👍24🤯16🤪4🤣2
Обучение с помощью чат-ботов приводит к поверхностному усваиванию материалов

Исследователи Шири Мелумад и Джин Хо Юн в ходе нескольких экспериментов с участием более 10 тысяч человек выяснили, что обучение с помощью ChatGPT и других чат-ботов приводит к тому, что материал усваивается более поверхностно.

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

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

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

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

https://academic.oup.com/pnasnexus/article/4/10/pgaf316/8303888?login=false
👍15💯11👏1🤮1
Нейронный процессор (NPU) — это специализированный чип, оптимизированный для быстрых параллельных вычислений, особенно матричных и векторных операций. В теории вероятностей и статистике NPU ускоряют такие задачи, как моделирование методом Монте-Карло и байесовский вывод. В машинном обучении они ускоряют обучение нейронных сетей и вывод при низком энергопотреблении. В реальной жизни NPU обеспечивают работу таких функций, как разблокировка по лицу, распознавание речи, интеллектуальные камеры, автономное вождение и встроенный предиктивный ИИ на телефонах, автомобилях и устройствах Интернета вещей.
👍14🔥3🖕2🌚1
Традиционный обзор по рынку труда по статистике hh

В ноябре ситуация на рынке труда в сфере ИТ в целом продолжила ухудшаться. hh-индекс - показатель соотношения количества активных резюме к количеству активных вакансий снова ухудшился - рост до 19,4 (крайне мегасупервысокий уровень конкуренции соискателей за рабочие места)
А год к году снижение вакансий составило 43%, а по сранению с октябрем - уменьшение на 8%

Но есть и хорошие новости - немного повысились предлагаемые зарплаты - до 94915. При ожидаемой инфляции в районе 6-6,5% есть основания, что рост за год хотя бы перекроет годовую инфляцию - c начала года прирост предлагаемых зарплат составил 11,65%
https://stats.hh.ru/?hhIndexProfArea=information_technology&vacanciesProfArea=information_technology&countrySalaryDynamicChartProfArea=information_technology
😭28🤡31🤬1🎉1
3 декабря 2025 года вышла новая версия фреймворка для веб-разработки на Python - Django 6.0 (спустя два года после выпуска Django 5.0)

В Django 6.0 добавлено множество новых функций и улучшений. Основные нововведения:

- частичные шаблоны для модульного построения шаблонов (template partials for modularizing templates): модулизация шаблонов с помощью небольших именованных фрагментов для более чистого и удобного в поддержке кода;

- фоновые задачи: запуск кода вне цикла HTTP-запрос-ответ с помощью встроенной гибкой платформы задач;

- политика безопасности контента (CSP): простая настройка и применение политик безопасности на уровне браузера для защиты от внедрения контента;

- модернизированный API электронной почты: создание и отправка электронных писем с помощью класса Python EmailMessage для более чистого и удобного в поддержке интерфейса.

С релизом Django 6.0 версия Django 5.2 LTS перестанет получать основную поддержку, а версия 5.1 — расширенную.

https://www.djangoproject.com/weblog/2025/dec/03/django-60-released/
🤮13👍4👀2
Как работает SSH Tunnels Remote Port Forwarding
(продолжение в следующем посте)
👍62👏1
Как работает SSH Tunnels Remote Port Forwarding
(продолжение предыдущего поста)

SSH Remote Port Forwarding («удалённое перенаправление портов») позволяет открыть порт на удалённом SSH-сервере, а трафик с этого порта перенаправить на локальный компьютер (или другую указанную цель). Это создаёт защищённый SSH-туннель между клиентом и сервером.
SSH Remote Port Forwarding позволяет безопасно «опубликовать» локальные сервисы в интернете через защищённый туннель, управляя трафиком между клиентом, сервером и внешними пользователями.

2. Основные компоненты на схеме

- SSH Client (клиент SSH) — локальная машина (например, компьютер Джеймса), где запущен сервис (веб-сервер на localhost:80).
- Public SSH Server (публичный SSH-сервер) — сервер, к которому подключается клиент для создания туннеля. Служит «мостом» между клиентом и внешним миром.
- Remote Side Private Network (удалённая приватная сеть) — сторона, откуда идёт запрос к публичному SSH-серверу (например, пользователь Кей).
- SSH Tunnel (SSH-туннель) — зашифрованный канал передачи данных между клиентом и сервером.

3. Процесс работы

Шаг 1. Установка SSH-соединения с параметром `-R`

Клиент (Джеймс) инициирует SSH-сессию с публичным сервером, используя команду:
ssh -R 0.0.0.0:8080:localhost:80 user@pub-ssh-server

Где:
- -R — флаг для удалённого перенаправления портов;
- 0.0.0.0:8080 — адрес и порт на SSH-сервере, которые будут слушать трафик (0.0.0.0 означает «все интерфейсы»);
- localhost:80 — локальный адрес и порт, куда перенаправляется трафик (веб-сервер Джеймса);
- user@pub-ssh-server — учётная запись и адрес SSH-сервера.

Шаг 2. Настройка GatewayPorts

По умолчанию SSH слушает только интерфейс 127.0.0.1 (loopback). Чтобы сервер принимал соединения со всех интерфейсов (0.0.0.0), нужно в файле sshd_config на SSH-сервере установить:
GatewayPorts yes

Альтернативно можно использовать GatewayPorts clientspecified, чтобы сервер использовал адрес из команды -R.

Шаг 3. Перенаправление трафика

1. Пользователь (Кей) на удалённой стороне отправляет запрос на публичный SSH-сервер (curl public-ssh-server:8080).
2. SSH-сервер получает запрос на порт 8080 и перенаправляет его через туннель на локальный компьютер Джеймса (localhost:80).
3. Веб-сервер Джеймса обрабатывает запрос и возвращает ответ через тот же туннель.
4. Публичный SSH-сервер передаёт ответ пользователю (Кей).

4. Ключевые особенности

- Безопасность: весь трафик зашифрован благодаря SSH-туннелю.
- Доступность локальных сервисов: сервисы, доступные только локально (например, веб-сервер на localhost:80), становятся доступны извне через публичный SSH-сервер.
- Гибкость: можно пробрасывать любые порты (базы данных, API, RDP и т. д.).
- Контроль доступа: доступ к перенаправленным портам можно ограничить настройками SSH-сервера.

5. Пример из схемы

- Джеймс запускает веб-сервер на localhost:80.
- Создаёт SSH-туннель с публичным сервером, пробрасывая порт 8080 на свой веб-сервер.
- Кей может открыть public-ssh-server:8080 в браузере и увидеть веб-страницу Джеймса, хотя сервер работает только в локальной сети.
13👍2👏1
Еще один мессенджер.

РФ и Китай создают собственную платформу для коммуникаций под кодовым названием Molniya. Разработкой «Молнии» занимаются китайская Passion и российская «Ред Софт». Планировалось, что в приложении будут доступны функции для общения, трансляций и коротких видео - сплав мессенджера и соцсетей.
Но мессенджер будет только одной из функциональных возможностей «Молнии», уже на начальном этапе разработчики собирались реализовать сервисы для бизнеса, в частности, планируется внедрение финансового сервиса, который позволит выполнять конвертацию валют, оплачивать покупки посредством QR-кодов, выполнять трансграничные переводы и т.д. В платформу будут добавлены инструменты для создания внутренних маркетплейсов, а также «социального слоя», говорит Михаил Толпышкин, генеральный директор компании «Молния».


Сам запуск мессенджера «Молния», разработкой которого занимаются специалисты из России и Китая, перенесли на начало 2026 года. Изначально планировалось, что мессенджер запустят в сентябре этого года.
Разработчики планировали, что в течение полутора лет после запуска аудитория «Молнии» достигнет 15 миллионов человек.

https://tass.ru/ekonomika/25811121
🤮25🤣19👍522💩2🔥1
Матрица вращения для трехмерных объектов
11🤓9👍4🤡1
Линус Торвальдс все еще использует Fedora с GNOME
Потому что, по его мнению, Fedora больше подходит для разработки ядра. В ней все для этого упрощено
В то время как Ubuntu более ориентированна на потребителя и меньше подходит для разработки ядра. И, как вспоминает Линус, когда он попробовал Ubuntu много-много лет назад, она усложнила для него обновление ядра,
18😈16🤣11😁6👍4🔥2🤯1🤮1😨1