METANIT.COM
6.24K subscribers
1.79K photos
86 videos
10 files
1.26K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Краткая шпаргалка по элементам ввода в HTML
👍8🔥5❤‍🔥3
Полная блокировка Telegram в России может начаться 1 апреля

Роскомнадзор может приступить к полной блокировке мессенджера Telegram на территории России уже с 1 апреля. О готовящихся мерах сообщает телеграм-канал Baza со ссылкой на источники в нескольких ведомствах.

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

Со своей стороны Роскомнадзор прокомментировал слухи о полной блокировке Telegram следующим образом: «Ведомству нечего добавить к ранее опубликованной информации по данному вопросу»

https://www.kommersant.ru/doc/8441184
🤡43💊10😁61💔1🖕1
В проведенном опросе на тему, как пользователи будут отправлять сообщения при блокировке Телеграмма победил вариант "Передача сообщений с помощью костров". Голубиная почта только на втором.
https://t.me/devnull22/3395

К сожалению, забыл включить некоторые варианты. Например, если вообще замедлить интернет, то у Почты России тоже есть шанс. Так что при блокировке Телеграмма альтернативы есть.

Ну я также напоминаю, что в качестве альтернативы посты дублируются также в канале в Мах: https://max.ru/metanit на случай, если Телеграмм заблокируют (что в принципе уже стало понятно с момента запуска Max)
😁20💩6🤝53👎2
Роскомнадзор опроверг информацию о блокировке сервисов Windows

Решения уполномоченных органов по ограничению сервисов Windows в России не поступали. Об этом заявили в пресс-службе Роскомнадзора.

Сегодня появились сообщения о жалобах пользователей на работу Windows после обновления сервиса — россияне сообщали о «черных экранах смерти» и долгой загрузке компьютера. Также сообщается, что пользователям Windows перестали приходить обновления для операционной системы. В конечном счете это связали с работой РКН по замедлению мессенджера Telegram.

https://www.kommersant.ru/doc/8441415
🥴16🤣8😁6🤔2😢1
Стратегии повышения производительности системы
(продолжение в следующем посте)
🔥32👍2
Стратегии повышения производительности системы
(продолжение предыдущего поста)

1. Применение CAP-теоремы и PACELC-теоремы для выбора баланса характеристик системы

- CAP-теорема утверждает, что распределённая система может одновременно обеспечить только два из трёх свойств:
- Consistency (согласованность) — все узлы видят одинаковые данные;
- Availability (доступность) — каждый запрос получает ответ, даже если он не содержит самых актуальных данных;
- Partition Tolerance (устойчивость к разделению) — система работает при разрывах связи между узлами.

Варианты выбора:
- CP-системы (Consistency + Partition Tolerance) — приоритет точности данных (например, в финансах).
- AP-системы (Availability + Partition Tolerance) — приоритет доступности, временная несогласованность данных допустима (например, в развлекательных сервисах).
- CA-системы (Consistency + Availability) — возможны только при исключении сетевого разделения

- PACELC-теорема расширяет CAP-теорему:
- При разделении сети (P) система выбирает между доступностью (A) и согласованностью (C).
- В штатном режиме (E) — между задержками (L) и согласованностью (C). Это позволяет оптимизировать производительность за счёт снижения задержек в обычных условиях работы

2. Шардирование базы данных (Database Sharding)

- Суть: распределение данных по нескольким инстансам или серверам базы данных, где каждый шард содержит уникальный поднабор данных.
- Преимущества:
- Горизонтальное масштабирование — система легко адаптируется к росту нагрузки и объёму данных.
- Уменьшение нагрузки на отдельные узлы за счёт распределения запросов.
- Механизм: использование функции хеширования (Hash Function) для распределения ключей (Keys) по шардам (Shards) на основе вычисленного хеша.
- Пример на изображении: ключи A, B, C, D распределяются по двум шардам (Shard 1 и Shard 2) с помощью хеш-функции.

3. Кэширование базы данных (Database Caching)

- Суть: хранение часто используемых данных в кэше для ускорения доступа к ним.
- Компоненты:
- Webserver отправляет запросы к кэшу и базе данных.
- Cache хранит копии данных для быстрого доступа.
- DB — исходная база данных, к которой обращаются при «промахе кэша» (Cache Miss).
- Процессы:
- Read Path (Cache Miss): если данные отсутствуют в кэше, система обращается к БД, забирает данные, сохраняет их в кэше и возвращает клиенту.
- Write Path: при записи данных сначала обновляется кэш, затем — БД.
- Преимущества:
- Снижение нагрузки на БД.
- Уменьшение времени отклика системы.
- Повышение пропускной способности.

4. Согласованное хеширование (Consistent Hashing)

- Суть: метод распределения данных по узлам с минимизацией перераспределения при добавлении/удалении узлов.
- Как работает:
- Пространство ключей представляется как кольцо (на изображении — круг с ключами K1, K2, K3, K4).
- Узлы (серверы) также распределяются по этому кольцу.
- Каждый ключ назначается ближайшему по кольцу узлу.
- Преимущества:
- Балансировка нагрузки между узлами.
- Устойчивость к отказам узлов — данные перераспределяются только на соседние узлы.
- Лёгкость масштабирования — добавление/удаление узлов требует перераспределения лишь небольшой части данных.

5. Асинхронная обработка (Asynchronous Processing)

- Суть: отделение тяжёлых вычислительных задач от основного потока выполнения для повышения отзывчивости системы.
- Компоненты:
- Service A и Service B — сервисы, обменивающиеся сообщениями.
- Broker — посредник (очередь сообщений), который буферизирует запросы.
- Механизм:
- Сервис A отправляет запрос в брокер.
- Брокер сохраняет запрос и передаёт его сервису B, когда тот готов обработать.
- Сервис B обрабатывает запрос асинхронно, не блокируя основной поток сервиса A.
- Преимущества:
- Повышение пропускной способности — система не ждёт завершения операций.
- Разделение ответственности между сервисами.
- Устойчивость к временным сбоям — брокер сохраняет запросы до их обработки.
5🔥3👍2
Комбинация этих стратегий позволяет оптимизировать производительность системы с учётом конкретных требований: баланса между согласованностью и доступностью (CAP/PACELC), распределения нагрузки (шардирование, согласованное хеширование), ускорения доступа к данным (кэширование) и повышения отзывчивости (асинхронная обработка).
🔥3👍2🤝2
Unity пообещала разработать ИИ, который позволит создавать игры по текстовому описанию

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

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

В компании заявили, что Unity AI даст доступ к разработке игр для тех, кто не занимается программированием, одновременно повышая производительность для всех пользователей. А цель компании - максимально упростить творческий процесс, став универсальным мостом между первой искрой творчества и успешным, масштабируемым и долговечным цифровым опытом.

https://www.gamedeveloper.com/programming/unity-says-its-ai-tech-will-soon-be-able-to-prompt-full-casual-games-into-existence-
😭32🤮22👎6🤔6🖕5👍3🥴2💩1🤡1🤣1
"Секретные практики" JavaScript
👻26😁8🤩1🤮1
VK закрыл мессенджер «ТамТам»

VK прекратит поддержку мессенджера «ТамТам» с 27 февраля. Ранее пользователи сервиса получили сообщения о закрытии приложения.

«Обращаем внимание, что в связи с закрытием «ТамТам» авторизация по номеру телефона в сервисе станет недоступна с 27 февраля», — сказано в сообщении техподдержки мессенджера.

Мессенджер был запущен в июле 2016 года под названием «ОК сообщения». В мае 2017-го приложение переименовали в «ТамТам», а в августе 2018 его стало возможно использовать независимо от «Одноклассников».

В апреле 2018 года на фоне блокировок Telegram в России Mail.Ru Group (ныне — VK) сообщил, что за несколько часов число новых регистраций в мессенджере «ТамТам» выросло в 10 раз. При этом точное количество скачиваний и пользователей компания не назвала.

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

https://www.rbc.ru/rbcfreenews/699562e09a7947012a863377
🔥13😁93🙊3🤡1
Claude написал код с ошибкой — криптоплатформа потеряла $1,78 млн за минуты

Криптовалютная платформа Moonwell потеряла $1,78 млн из-за бага в коде, написанном совместно с Claude Opus 4.6. Ошибка в ценовом оракуле — сервисе, который сообщает смарт-контрактам рыночные цены — привела к тому, что токен cbETH оценивался в $1,12 вместо реальных ~$2200. Торговые боты воспользовались этим за считаные минуты.

Инцидент произошел 15 февраля, когда было исполнено обновление MIP-X43, подключающее контракты ценовых оракулов Chainlink на сетях Base и Optimism. В одном из оракулов формула была неполной: вместо того чтобы умножить курс cbETH/ETH на цену ETH в долларах, система просто передавала курс cbETH/ETH как итоговую цену. Результат — вместо $2200 оракул показывал $1,12.

Торговые боты отреагировали мгновенно: по правилам платформы они погашали ~$1 долга и забирали взамен один cbETH стоимостью $2200. Мониторинг Moonwell обнаружил аномалию через четыре минуты, но остановить процесс было невозможно — исправление оракула требует голосования и пятидневного ожидания. Всего боты изъяли 1096 cbETH, а платформа осталась с безнадежным долгом в $1,78 млн.

https://forum.moonwell.fi/t/mip-x43-cbeth-oracle-incident-summary/2068
🤣56🔥7👍54😢2👾2
В Роскомнадзоре не получали требований заблокировать сервисы Linux для пользователей в РФ

В Роскомнадзоре сообщили СМИ, что ведомство не причастно к ситуации, что разработчикам и пользователям Linux из России оказался заблокирован доступ к обновлениям Linux. «Решения уполномоченных органов по ограничению сервисов Linux в России не поступали», — заявили в РКН.

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

Председатель совета директоров «Базальт СПО» (разработчик ОС «Альт») Алексей Смирнов подтвердил, что сайт международного проекта разработки ядра Linux был заблокирован. «Сейчас она [блокировка] уже снята, хотя, возможно, не везде», — отметил он. Смирнов добавил, что такая изоляция мешает нормальному развитию отечественной разработки.

О ситуации также написала глава Лиги безопасного интернета Екатерина Мизулина в своем Telegram-канале — по ее словам, IT-специалисты жалуются на ситуацию вокруг Linux уже несколько дней.

На профильных ресурсах предположили, что РКН через технические средства противодействия угрозам усилил фильтрацию трафика и забанил IP и домены, через которые проекты Microsoft и Linux получают обновления, на фоне работ по замедлению Telegram.

https://www.forbes.ru/tekhnologii/555740-pol-zovateli-pozalovalis-na-otsutstvie-obnovlenij-linux-na-fone-zamedlenia-telegram
🤡41😁6❤‍🔥2🥰2🙊2👏1
Добавил новую статью про Команды диагностики сетевых проблем в Linux на различных уровнях сетевой модели OSI
https://metanit.com/os/linux/7.4.php
#linux
23❤‍🔥7🔥6
Мейнтейнеры Godot жалуются, что репозиторий проекта заваливают сгенерированными пул-реквестами

Мейнтейнеры игрового движка Godot жалуются, что репозиторий проекта начали массово заваливать пул-реквестами с полностью сгенерированным кодом. У команды уходить много времени на проверку кода, что сильно деморализует.

Вместо проверки кода и помощи новичкам команда теперь детально изучает каждый пул-реквест и пытается понять, сгенерировали ли его. В коде от нейросетей часто бывают ошибки или простое непонимание контекста проекта. При это команда придерживается дружелюбного отношения к новичкам и считает, что любой желающий может внести вклад в развитие Godot. Теперь же не всегда ясно, кто стоит за пул-реквестом: неопытный программист или языковая модель.
Разработчики устают и не могут выделить время на важные задачи. Ситуацию усложняет то, что сторонние разработчики не указывают в своих пул-реквестах кто автор кода.

Решением может стать автоматическая проверка кода, но тогда проблема замкнётся: придётся использовать нейросети для обнаружения нейросетей. Команда не хочет прибегать к этому и поддерживать сторонние AI-проекты. Единственное приемлемое для Godot решение: нанять разработчиков, которые будут проверять пул-реквесты.

https://bsky.app/profile/akien.bsky.social/post/3meyerixvhs2p
😭26🤷‍♂9🤯8🤡4😁3👍2🔥1
Использовать почтовые клиенты для @mail.ru — теперь только за деньги

В этом месяце, в феврале 2026 года, началась постепенная раскатка на пользователей почтового сервиса @mail.ru новых условий использования электронной почты: отныне подключать почтовые клиенты (Outlook, ThaBat, Thunderbird, и др.) к свою ящику можно только имея платную подписку "Mail Space", которая стоит около 400 рублей в месяц.

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

https://habr.com/ru/news/1001172/
🤣24👎15🤷‍♂3👀2
4 базовые концепции объектно-ориентированного программирования (ООП)
(продолжение в следующей теме)
5👍2🤝2
4 базовые концепции объектно-ориентированного программирования (ООП)
(продолжение предыдущего поста)

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

1. Абстракция (Abstraction)

Суть: абстракция — это процесс сокрытия деталей реализации и предоставления пользователю только функциональности. То есть мы фокусируемся на «что делается», а не на «как это делается».

На изображении:
- Приведён пример с классом Car (абстрактный класс), который содержит абстрактный метод stop().
- Конкретные реализации (Honda, Tesla, Ford) наследуют Car и предоставляют свою реализацию метода stop().
- Визуально показано, как общий интерфейс (Car) связан с конкретными реализациями (марки автомобилей).

Пример кода:
public abstract class Car {
public abstract void stop();
}

public class Honda extends Car {
@Override
public void stop() {
System.out.println("Honda::Stop");
System.out.println("Mechanism to stop the car using break");
}
}


2. Инкапсуляция (Encapsulation)

Суть: инкапсуляция — это объединение кода и данных в единый блок (класс), при этом каждый объект контролирует своё состояние. Это позволяет скрыть внутреннюю реализацию и предоставить доступ только через методы.

На изображении:
- Показана структура класса: переменные (Variables) и методы (Methods) объединены в класс (Class).
- Пример с классом Car, где переменная name объявлена private, а доступ к ней осуществляется через методы getName() (getter) и setName(String name) (setter).

Пример кода:
public class Car {
// private variable
private String name;

// getter method for name
public String getName() {
return name;
}

// setter method for name
public void setName(String name) {
this.name = name;
}
}


3. Наследование (Inheritance)

Суть: наследование позволяет одному классу (производному, дочернему) наследовать свойства и методы другого класса (базового, родительского). Отражает отношение «IS-A» («является»).

На изображении:
- Схема с классом Vehicle (базовый класс) и производными классами: Bike, Car, Bus, Truck.
- Пример кода показывает, как класс Car наследует поле brand от Vehicle и добавляет своё поле doors.
- Метод describe() переопределяется в классе Car для предоставления специфической реализации.

Пример кода:
class Vehicle {
protected String brand;

// Constructor
public Vehicle(String brand) {
this.brand = brand;
}

// Method to be overridden
public String describe() {
return "This is a vehicle of brand: " + brand;
}
}

class Car extends Vehicle {
private int doors;

// Constructor
public Car(String brand, int doors) {
super(brand);
this.doors = doors;
}

// Override the describe method
@Override
public String describe() {
return "This is a car of brand: " + brand + " with " + doors + " doors.";
}
}


4. Полиморфизм (Polymorphism)

Суть: полиморфизм — это способность объектов выполнять одни и те же действия разными способами. Объекты разных классов могут использоваться взаимозаменяемо, если они наследуют общий интерфейс.

На изображении:
- Разделяется на два типа: полиморфизм на этапе компиляции (Compile Time Polymorphism) и полиморфизм на этапе выполнения (Run Time Polymorphism).
- Compile Time Polymorphism включает перегрузку операторов (Operator Overloading) и перегрузку функций (Function Overloading).
- Run Time Polymorphism реализуется через виртуальные функции (Virtual Function) и переопределение методов.
- Пример: класс Vehicle с методом start(), который переопределяется в классе Car. Объект Car может быть присвоен ссылке типа Vehicle, и при вызове start() будет выполняться реализация из Car.
9💋3🔥2🙏2👏1