METANIT.COM – Telegram
METANIT.COM
5.92K subscribers
1.68K photos
82 videos
9 files
1.06K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
👍11🥰8👏1
Ключевые паттерны, которые применяются в LeetCode:
1. Prefix Sum
2. Two Pointers
3. Sliding Window
4. Fast & Slow Pointers
5. LinkedList In-place Reversal
6. Monotonic Stack
7. Top ‘K’ Elements
8. Overlapping Intervals
9. Modified Binary Search
10. Binary Tree Traversal
11. Depth-First Search (DFS)
12. Breadth-First Search (BFS)
13. Matrix Traversal
14. Backtracking
15. Dynamic Programming Patterns
23🥰2👏2
Компании «Ред Софт» и «ТП Лабс» заявили о старте розничных продаж смартфона AQPhone M11 на базе российской мобильной ОС «Ред ОС М».
По словам разработчиков, AQPhone M11 готов к работе сразу после покупки. Смартфон предустановлен с необходимым ПО по распоряжению Правительства РФ. Устройство совместимо с российскими облачными сервисами и бизнес‑приложениями. Смартфон поддерживает приложения для работы с документами, изображениями, картами и основные отечественные экосистемные продукты.
Мобильная ОС от «Ред Софт» имеет два режима работы: мобильный и настольный. В мобильном режиме запускаются приложения Android без эмуляции. В настольном режиме можно подключить мышь, клавиатуру и дисплей, работать с Linux‑приложениями.
Смартфон AQPhone M11 производится российскими инженерами «ТП Лабс». Операционная система «Ред ОС М» разработана в России и зарегистрирована в реестре российского ПО Минцифры России. Устройство разрешено использовать госорганам и компаниям с госучастием.

Технические характеристики:
- Процессор MediaTek Helio P35 8 ядер, 2.3 ГГц
- Экран IPS, 6.67 дюйма, разрешение 2400×1080 пикселей;
- ОЗУ Память: 8 ГБ ОЗУ (на портале Highscreen указано 4 ГБ);
- Встроенная память 64 ГБ;
- Карта памяти microSD до 1024 ГБ;
- Камера основная 16 Мп (зум, макро, HDR, панорама); Камера фронтальная 8 Мп;
- 2 SIM‑карты, поддержка 2G/3G/4G (LTE);
- Беспроводные модули Bluetooth 5.0, Wi‑Fi 2.4/5 ГГц, NFC;
- Навигация GPS+Glonass;
- Дополнительные функции: сканер отпечатка пальца, датчики движения и света, FM‑радио;
- Несъёмный Аккумулятор Li‑pol, 5000 мАч с быстрой и беспроводной зарядкой;
- Размеры: 167.3×77×10.2 мм;
- Вес 240 грамм
- Разъём: Type‑C.

Цена 18 990 ₽
https://www.red-soft.ru/ru/blog/%D0%B2-%D1%80%D0%BE%D0%B7%D0%BD%D0%B8%D1%87%D0%BD%D0%BE%D0%B9-%D0%BF%D1%80%D0%BE%D0%B4%D0%B0%D0%B6%D0%B5-%D0%BF%D0%BE%D1%8F%D0%B2%D0%B8%D0%BB%D1%81%D1%8F-%D0%BC%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D1%8B%D0%B9-%D1%81%D0%BC%D0%B0%D1%80%D1%82%D1%84%D0%BE%D0%BD-aq-phone-m11-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9-%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9
💩26👍17🤯5👏2😁1
6 наиболее часто используемых типов серверов.

1. Веб-сервер:
Размещает веб-сайты и доставляет веб-контент клиентам через Интернет

2. Почтовый сервер:
Обеспечивает отправку, получение и маршрутизацию электронных писем по сетям.

3. DNS-сервер:
Переводит доменные имена в IP-адреса, позволяя пользователям получать доступ к веб-сайтам по их понятным человеку именам.

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

5. FTP-сервер:
Облегчает передачу файлов между клиентами и серверами по сети.

6. Сервер-источник:
Размещает центральный источник контента, который кэшируется и распределяется по пограничным серверам для более быстрой доставки конечным пользователям.
👍164🔥3
В CSS добавили функцию if для создания условных конструкций, уже доступно в Chrome 137
Осталось добавить добавить циклы типа while/for
#css
🤯51😁21🔥15🙈4👍2🍾1
Google выпустил новую версию фреймворка для создания веб-приложений Angular - Angular v20. Этот выпуск представляет собой значительное обновление фреймворка, сосредоточенное на повышении производительности, улучшении опыта разработчиков и стабилизации ранее внедрённых функций. Основной акцент сделан на доработке API реактивности, бесзонного (zoneless) подхода, инкрементальной гидратации и других улучшений.
Основные изменения:

- Стабилизация API реактивности:
API сигналов (Signals), включая effect, linkedSignal и toSignal, теперь полностью стабильны, что позволяет разработчикам использовать их для более реактивного и декларативного управления состоянием.
Введены улучшения в интеграции сигналов с основными пакетами Angular (формы, маршрутизация, HTTP), обеспечивая более удобный опыт разработки.

- Бесзонный Angular (Zoneless, Developer Preview):
Поддержка бесзонного подхода к обнаружению изменений (change detection) вышла в стадию Developer Preview. Это позволяет отказаться от Zone.js, уменьшая ненужные проверки DOM и повышая производительность.
Новый подход использует сигналы для точечного обновления, что улучшает отладку и взаимодействие с другими библиотеками.

- Инкрементальная гидратация:
Введена функция инкрементальной гидратации, которая позволяет рендерить отложенный контент на сервере, пропуская его при клиентской гидратации. Это улучшает метрики Core Web Vitals, такие как LCP и CLS, обеспечивая частичную интерактивность приложения при загрузке.

- Интеграция с Chrome DevTools:
Совместная работа с командой Chrome DevTools привела к интеграции профилирования Angular в панель Performance. Теперь разработчики могут видеть данные о рендеринге компонентов, циклах обнаружения изменений и выполнении обработчиков событий в одном временном масштабе с другими метриками браузера.

- Улучшения в стиле и упрощение кода:
Обновлено руководство по стилю, исключены устаревшие рекомендации по NgModules.
Предпочтение отдаётся использованию объекта host в метаданных компонентов вместо декораторов @HostBinding и @HostListener, с улучшенной поддержкой проверки типов и языковой поддержки.
Изменены соглашения об именовании: при генерации компонентов и сервисов больше не добавляются расширения .component или .service в имена файлов.

- Новые возможности и будущие планы:
Введена поддержка тестирования с использованием Vitest, что модернизирует процесс юнит-тестирования.
Анонсированы предварительные планы для Angular v21, включая компоненты без селекторов (selectorless components), новые форматы создания компонентов, улучшения в формах на основе сигналов и официальный маскот Angular.
Запущен RFC (Request for Comments) для обсуждения концепций маскота, чтобы он отражал ценности и идентичность Angular.

- AI-интеграция

- Технические изменения:
Минимальная версия Node.js для Angular v20 — 20.11.1.
Обновлены методы маршрутизации для поддержки неизменяемых массивов и асинхронных функций RedirectFn (Observable или Promise).
Изменено поведение обработки ошибок в тестах: необработанные ошибки в слушателях теперь передаются внутренней системе обработки ошибок Angular.

https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301
#angular
❤‍🔥73👍2
10 типов баз данных для проектирования систем:

1) 𝐑𝐞𝐥𝐚𝐭𝐢𝐨𝐧𝐚𝐥:
- Хранит данные в таблицах с предопределенными схемами и связями.
- Полезен для приложений, требующих структурированных данных, сложных запросов и транзакций ACID.
- Примеры: PostgreSQL, MySQL

2) 𝐈𝐧-𝐌𝐞𝐦𝐨𝐫𝐲:
- Сохраняет все данные в оперативной памяти для чрезвычайно быстрого доступа.
- Полезно для приложений, требующих сверхнизкой задержки и высокоскоростного кэширования.
- Примеры: Redis, Memcached

3) 𝐊𝐞𝐲-𝐕𝐚𝐥𝐮𝐞 𝐒𝐭𝐨𝐫𝐞:
- Хранит данные в виде пар «ключ-значение» для быстрого извлечения и высокой масштабируемости.
- Идеально подходит для приложений, работающих с большими объемами данных и требующих быстрого поиска по ключу.
- Примеры: Redis, Amazon DynamoDB

4) 𝐃𝐨𝐜𝐮𝐦𝐞𝐧𝐭:
- Хранит данные в гибких, полуструктурированных форматах документов, таких как JSON или BSON.
- Полезно для неструктурированных, иерархических или быстро меняющихся данных.
- Примеры: MongoDB, Couchbase

5) 𝐆𝐫𝐚𝐩𝐡:
- Хранит данные в виде узлов и ребер.
- Используется для представления сложных взаимосвязей, таких как рекомендательные системы и социальные сети.
- Примеры: Neo4j, Amazon Neptune

6) 𝐖𝐢𝐝𝐞-𝐂𝐨𝐥𝐮𝐦𝐧 𝐒𝐭𝐨𝐫𝐞:
- Сохраняет данные в гибких столбцах для оптимизации чтения определенного атрибута.
- Полезно для приложений, работающих с высокой пропускной способностью записи и выполняющих аналитические запросы.
- Примеры: Cassandra, Google Bigtable

7) 𝐓𝐢𝐦𝐞-𝐒𝐞𝐫𝐢𝐞𝐬:
- Оптимизирован для хранения и запроса данных с меткой времени.
- Полезно, когда данные генерируются в хронологическом порядке, например, данные систем мониторинга и финансовые данные.
- Примеры: InfluxDB, Prometheus

8) 𝐓𝐞𝐱𝐭 𝐒𝐞𝐚𝐫𝐜𝐡:
- Оптимизирован для хранения, индексации и поиска текстовых данных.
- Используется для приложений с большим объемом контента, требующих текстового поиска, фильтрации и ранжирования, таких как поисковые системы.
- Примеры: Elasticsearch, Solr

9) 𝐒𝐩𝐚𝐭𝐢𝐚𝐥:
- Предназначен для хранения и запроса данных о местоположении.
- Идеально подходит для поддержки функций, основанных на местоположении, например, в службах заказа поездок и картографических приложениях.
- Примеры: PostGIS, Oracle Spatial

10) 𝐁𝐥𝐨𝐛 𝐒𝐭𝐨𝐫𝐞:
- Оптимизирован для хранения и извлечения больших объектов, таких как изображения и видео.
- Полезно, когда вам нужно масштабируемое и недорогое хранилище для редко используемых данных. Обычно используется в паре с CDN для уменьшения задержки для конечных пользователей.
- Примеры: Amazon S3, Google Cloud Storage, Azure Blob Storage
🔥123👍3
(Иллюстрация к предыдущему посту - 10 типов баз данных для проектирования систем)
🔥14🥰1👏1
Число IT-специалистов в РФ составляет более 1 млн человек, спрос на них сохраняется, но в настоящее время востребованы более опытные кадры, заявил министр цифрового развития связи и массовых коммуникаций Максут Шадаев.

"Пока мы не видим таких тенденций в явном виде. Пока мы не видим тотальной какой-то заморозки найма и того, что компании, условно, увольняют айтишников, потому что искусственный интеллект код пишет и они больше не нужны. Нам кажется, что здесь такой ажиотаж - он немножко раздутый. За пять лет количество сотрудников IT-компаний увеличилось на 50%. Их было 990 тыс. на конец 2024 года. Сейчас мы, очевидно, за миллион перешагнули. И в целом, я считаю, спрос остаётся", - сказал Шадаев в четверг, выступая на форуме на TAdviser Summit.

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

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

"Но потребность в кадрах в моем понимании остаётся. И я призываю молодое поколение связывать свою судьбу с IT. Только чуть-чуть надо смещаться в сторону робототехники, ИИ - это более сложные специальности, но прогресс не остановим", - заключил глава Минцифры.
https://www.interfax.ru/russia/1028484
🤡9👍2💯2
Минцифры планирует в ближайшие полгода определиться с единой политикой использования VPN-сервисов в России, сообщил руководитель министерства Максут Шадаев.

"Я думаю, что в ближайшие полгода мы определимся с контурами политики в этой части. Доля трафика VPN сейчас увеличивается. При этом понятно, что с недружественными VPN, которые не выполняют требования российского законодательства, Роскомнадзор борется. При этом зачастую попадают, так сказать, в замес и корпоративные VPN, которые нужны (компаниям - ИФ)", - сказал он

"Мы сейчас будем вырабатывать четкую политику в этой части. Потому что настало время договориться о единых правилах по VPN", - добавил министр.

Глава Минцифры пообещал поделиться конкретными деталями "ближе к осени".
https://www.interfax.ru/russia/1028468
🖕26🤡15😁4🤔32💊2🤮1💯1
20 структур, которые являются основой различных систем, обеспечивают работу поисковых систем, хранилищ временных рядов, блокчейна и многого другого.

1. Структуры с индексаторами (Indexing Structures)
Hash Index, B-Tree, Skiplist, Bitmap Index, Trie
Это структуры, к которым можно обратиться для быстрого доступа к данным. Будь то быстрый поиск по ключам и значениям в памяти или сортированные обходы на диске, эти структуры формируют ядро ​​производительности запросов в большинстве баз данных.

2. Поиск и сопоставление с образцом
Inverted Index (Инвертированный индекс), Suffix Tree (суффиксное дерево), Segment Tree (сегментное дерево), R-Tree(R-дерево)
Предназначены для глубокого поиска — от документов и строк до пространственных запросов, поддерживают полнотекстовый поиск, многомерные поиски и аналитику в реальном времени.

3. Хранилище, оптимизированное для записи
LSM-дерево, SSTable, фильтр Блума (Bloom Filter)
Базы данных с высоким уровнем загрузки, такие как Cassandra и RocksDB, используют их для оптимизации скорости записи, управления сжатием данных и быстрым приблизительным поиском с минимальными затратами памяти.

4. Пространственная и диапазонная индексация (Spatial & Range Indexing)
Quad Tree (Дерево квадрантов), Z-order Curve (кривая Z-порядка), Segment Tree (сегментное дерево)
Используются в таких приложениях, как карты, игровые движки и системы временных рядов, помогают эффективно разделять и получать доступ к многомерным или последовательным данным.

5. Расширенные варианты использования
Дерево Меркла (Merkle Tree), Suffix Tree (суффиксное дерево), фильтр Блума
От проверки транзакций в блокчейне до биоинформатики и дедупликации в распределенных системах — эти структуры данных созданы для обеспечения надежности и целостности в любом масштабе.
👍111🔥1👏1
(Иллюстрация к предыдущему посту - 20 ключевых структур для использования в базах данных)
❤‍🔥6🔥4👏1
В руководство по Android на Kotlin добавлены материалы по работе с классами Activity в Jetpack Compose

Activity и жизненный цикл приложения
https://metanit.com/kotlin/jetpack/19.1.php

Управление жизненным циклом Activity в компонентах Compose
https://metanit.com/kotlin/jetpack/19.2.php

Введение в Intent. Запуск Activity
https://metanit.com/kotlin/jetpack/19.3.php

Передача данных между Activity
https://metanit.com/kotlin/jetpack/19.4.php

Файл манифеста AndroidManifest.xml
https://metanit.com/kotlin/jetpack/1.8.php

#android #kotlin #compose
🔥16👍32
Порядок выполнения SQL-запросов #sql #database
👍19🔥6👏1
Обновлено руководство по фреймворку Angular до версии Angular 20
https://metanit.com/web/angular2/
#angular
👍13🥰3❤‍🔥2👌21🔥1
Типы индексов базы данных

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

𝗕-𝘁𝗿𝗲𝗲 (B-дерево) — одна из наиболее часто используемых структур индексации, в которой ключи иерархически сортируются. При поиске данных дерево просматривается до конечного узла, который содержит соответствующий ключ и указатель на соответствующие строки в таблице. B-дерево чаще всего используется из-за его эффективности при хранении и поиске по упорядоченным данным. Их сбалансированная структура означает, что ко всем ключам можно получить доступ за одинаковое количество шагов, что обеспечивает постоянную производительность.

𝗛𝗮𝘀𝗵 𝗶𝗻𝗱𝗲𝘅𝗲𝘀 (хеш-индексы) лучше всего использовать при поиске точного соответствия значений. Ключевым компонентом хэш-индекса является хэш-функция. При поиске определенного значения искомое значение передается через хэш-функцию, которая возвращает хэш-значение. Это хэш-значение сообщает базе данных, где в хэш-таблице находятся ключ и указатели.

𝗕𝗶𝘁𝗺𝗮𝗽 𝗶𝗻𝗱𝗲𝘅𝗶𝗻𝗴 (индексы на основе битовых карт) используется для столбцов с несколькими уникальными значениями. Каждое битовое изображение представляет уникальное значение. Битовая карта указывает на наличие или отсутствие значения в наборе данных с помощью 1 и 0. Для существующих значений позиция 1 в битовой карте показывает местоположение строки в таблице. Индексы битовой карты очень эффективны при обработке сложных запросов, в которых используется несколько столбцов.
При индексировании таблицы обязательно тщательно выбирайте столбцы для индексации на основе наиболее часто используемых столбцов в предложениях WHERE.

𝗰𝗼𝗺𝗽𝗼𝘀𝗶𝘁𝗲 𝗶𝗻𝗱𝗲𝘅 (составной индекс) можно использовать, когда несколько столбцов часто используются вместе в предложении WHERE. С составным индексом комбинация двух или более столбцов используется для создания объединенного ключа. Затем ключи сохраняются на основе стратегии индекса, например, указанных выше параметров.
👍83👏1
(Иллюстрация к предыдущему посту - Типы индексов базы данных)
5🥰1👏1
Как искать в Google с помощью Python #python
23🍌13🔥7👎6