Вышла новая подверсия языка программирования PHP - PHP 8.5. Основные изменения в PHP 8.5:
1. URI-расширение
* Встроенная поддержка работы с URI (URL) по стандартам RFC 3986 и WHATWG URL.
* Можно парсить, нормализовать и модифицировать URL через API расширения.
2. Оператор pipe (`|>`)
* Позволяет цепочать вызовы функций в “функциональном” стиле, передавая результат слева направо.
* Упрощает код, избавляет от вложенности и временных переменных.
3. “Clone with” — клонирование с изменением свойств
* Новый синтаксис:
* Упрощает паттерн “with-er” (часто используется с
4. Атрибут `#[\NoDiscard]`
* Этот атрибут предупреждает, если возвращаемое значение функции/метода не используется.
* Помогает избежать ошибок, когда важно обработать результат.
5. Замыкания и first-class callables в константных выражениях
* В PHP 8.5 можно использовать статические замыкания и callables в константах, атрибутах, значениях параметров и свойств.
* Расширяет возможности метапрограммирования.
6. Постоянные cURL share-дескрипторы
* Добавлена функция
7. Новые функции для массивов
*
*
8. Улучшения отладки и диагностики
* Фатальные ошибки теперь показывают backtrace (трассировку).
* Появились функции
* Новый CLI-флаг:
9. Локализация (i18n)
* Новая функция
* Новый класс
* Функция
10. Другие улучшения синтаксиса и модели объектов
* Свойства, объявленные через конструктор (constructor property promotion), теперь могут быть
* Добавлен метод
* Новые методы DOM:
* Атрибут
11. Новый INI-директив
*
* Полезно для хостинга, контейнеров и сред с жёсткими лимитами памяти.
12. Новая константа сборки PHP
*
## Устаревания и несовместимости (deprecations)
* Оператор обратных кавычек (backtick), как alias для
* Неканоничные названия приведения типов (касты), такие как
* Настройка
*
* Кастинг float/string → int: если значение не может быть корректно представлено как int, теперь появится предупреждение.
## Влияние и зачем это
1. URI-расширение
* Встроенная поддержка работы с URI (URL) по стандартам RFC 3986 и WHATWG URL.
* Можно парсить, нормализовать и модифицировать URL через API расширения.
2. Оператор pipe (`|>`)
* Позволяет цепочать вызовы функций в “функциональном” стиле, передавая результат слева направо.
* Упрощает код, избавляет от вложенности и временных переменных.
3. “Clone with” — клонирование с изменением свойств
* Новый синтаксис:
clone $obj with ['prop' => $newValue]. * Упрощает паттерн “with-er” (часто используется с
readonly-классами). 4. Атрибут `#[\NoDiscard]`
* Этот атрибут предупреждает, если возвращаемое значение функции/метода не используется.
* Помогает избежать ошибок, когда важно обработать результат.
5. Замыкания и first-class callables в константных выражениях
* В PHP 8.5 можно использовать статические замыкания и callables в константах, атрибутах, значениях параметров и свойств.
* Расширяет возможности метапрограммирования.
6. Постоянные cURL share-дескрипторы
* Добавлена функция
curl_share_init_persistent(). Дескриптор может быть переиспользован между запросами, что экономит ресурсы. 7. Новые функции для массивов
*
array_first() — возвращает первый элемент массива (или null, если массив пуст). *
array_last() — возвращает последний элемент массива (или null). 8. Улучшения отладки и диагностики
* Фатальные ошибки теперь показывают backtrace (трассировку).
* Появились функции
get_error_handler() и get_exception_handler(), чтобы узнать текущие обработчики ошибок и исключений. * Новый CLI-флаг:
php --ini=diff — показывает только те INI-настройки, которые отличаются от значений по умолчанию. 9. Локализация (i18n)
* Новая функция
locale_is_right_to_left() и метод Locale::isRightToLeft() — проверка, является ли локаль “справа-налево” (например, арабский, иврит). * Новый класс
IntlListFormatter — форматирует списки в зависимости от локали (“яблоко, банан и груша” и т. д.). * Функция
grapheme_levenshtein() — вычисляет “расстояние Левенштейна” между строками с учётом грaфемных кластеров (для Unicode). 10. Другие улучшения синтаксиса и модели объектов
* Свойства, объявленные через конструктор (constructor property promotion), теперь могут быть
final. * Добавлен метод
Closure::getCurrent() — упрощает рекурсию в анонимных функциях. * Новые методы DOM:
Dom\Element::getElementsByClassName() и Dom\Element::insertAdjacentHTML(). * Атрибут
#[\DelayedTargetValidation] — позволяет подавить ошибки проверки атрибутов на этапе компиляции, если цель атрибута является некорректной. 11. Новый INI-директив
*
max_memory_limit — ограничение сверху для memory_limit. * Полезно для хостинга, контейнеров и сред с жёсткими лимитами памяти.
12. Новая константа сборки PHP
*
PHP_BUILD_DATE — содержит дату сборки PHP. ## Устаревания и несовместимости (deprecations)
* Оператор обратных кавычек (backtick), как alias для
shell_exec(), теперь устарел. * Неканоничные названия приведения типов (касты), такие как
(boolean), (integer), (double), (binary) — теперь deprecated. * Настройка
disable_classes в INI удалена. *
case-операторы, завершающиеся точкой с запятой (;) вместо двоеточия (:) — deprecated. * Кастинг float/string → int: если значение не может быть корректно представлено как int, теперь появится предупреждение.
## Влияние и зачем это
❤8🐳4👍3
* Читаемость кода: новый pipe-оператор и helper-функции (
* Безопасность и устойчивость:
* Производительность / ресурсы: возможность переиспользовать cURL share-дескрипторы экономит расходы на подключение.
* Отладка: трассировки фатальных ошибок + инструменты для работы с обработчиками ошибок/исключений улучшают дебаг.
* Локализация: новые инструменты i18n помогают создавать приложения, дружелюбные к разным локалям.
* Кодовая база и архитектура: “clone with” и final-промоция свойств способствуют более чистым паттернам “immutable-объектов”.
https://www.php.net/releases/8.5/ru.php
#php
array_first, array_last) делают код более декларативным и понятным. * Безопасность и устойчивость:
#[\NoDiscard] помогает избежать ошибок, когда результаты функции игнорируются.* Производительность / ресурсы: возможность переиспользовать cURL share-дескрипторы экономит расходы на подключение.
* Отладка: трассировки фатальных ошибок + инструменты для работы с обработчиками ошибок/исключений улучшают дебаг.
* Локализация: новые инструменты i18n помогают создавать приложения, дружелюбные к разным локалям.
* Кодовая база и архитектура: “clone with” и final-промоция свойств способствуют более чистым паттернам “immutable-объектов”.
https://www.php.net/releases/8.5/ru.php
#php
www.php.net
PHP 8.5 Released
PHP 8.5 — большое обновление языка PHP с новыми возможностями, включая модуль URI, оператор Pipe и поддержку изменения свойств при клонировании.
❤9👍3👏3🥴3
Вышла новая версия фреймворка для создания веб-приложений Angular - Angular v21. Основные нововведения в Angular 21:
1. Signal Forms (в экспериментальном режиме)
* Появился новый способ работы с формами через
* Это упрощает управление состоянием (значения, валидность, “грязность” полей и т.п.) по сравнению с классическими
* Есть пакет
2. Zoneless (без zone.js) по умолчанию
* Для новых приложений Angular 21 “zoneless” режим (без
* Это позволяет убрать “заплатки” асинхронности, улучшает производительность, уменьшает размер бандла и делает стек-трейсы чище.
* Для приложений, которым всё ещё нужен
3. AI-инструменты: MCP-сервер Angular
* В CLI Angular появилось встроенное “серверное” API — MCP (Model Context Protocol). Это позволяет ИИ-ассистентам (LLM) взаимодействовать с вашим проектом: получать структуру, документацию, примеры.
* Инструменты MCP позволяют:
* Это шаг к более тесной интеграции Angular-проектов с ИИ и автоматизации задач (генерация кода, рекомендации и т.п.).
4. Angular ARIA (preview)
* Добавлен новый пакет
* Это “headless” библиотека компонентов с акцентом на доступность (accessibility): компоненты без стилей (можно стилизовать как хочется), поддерживают шаблоны ARIA.
* Поддерживаются такие паттерны: Accordion, Combobox, Grid, Listbox, Menu, Tabs, Toolbar, Tree.
5. Vitest — тестовый раннер по умолчанию
* Angular CLI теперь использует Vitest как основной тестовый фреймворк.
* Поддержка Karma/Jasmine устаревает — ожидается их удаление в следующих версиях (начиная с v22).
6. Упрощённый HttpClient
*
* Добавлены новые опции:
7. Улучшения шаблонов и компилятора
* В шаблонах теперь поддерживаются регулярные выражения: можно писать выражения вроде
* У
*
8. Контейнеры стилей (encapsulation)
* Появилась экспериментальная стратегия
9. Оптимизация сборки и инструментов разработки
* Улучшены tree-shaking и удаление неиспользуемого кода → уменьшение размера бандлов.
* Улучшения в dev-сервере: более быстрый HMR (горячая перезагрузка), лучшее кеширование и меньшее потребление памяти.
* CLI получает более удобные схемы миграции и улучшенную эргономику для совместимости с новыми паттернами (signal, zoneless и пр.).
## Влияние
1. Signal Forms (в экспериментальном режиме)
* Появился новый способ работы с формами через
@angular/forms/signals: формы теперь основаны на *Signals*. * Это упрощает управление состоянием (значения, валидность, “грязность” полей и т.п.) по сравнению с классическими
FormGroup / FormControl. * Есть пакет
compat, который помогает постепенно мигрировать существующие реактивные формы: @angular/forms/signals/compat. 2. Zoneless (без zone.js) по умолчанию
* Для новых приложений Angular 21 “zoneless” режим (без
zone.js) теперь используется по умолчанию. * Это позволяет убрать “заплатки” асинхронности, улучшает производительность, уменьшает размер бандла и делает стек-трейсы чище.
* Для приложений, которым всё ещё нужен
zone.js, можно явно вернуть его с помощью провайдера provideZoneChangeDetection(). 3. AI-инструменты: MCP-сервер Angular
* В CLI Angular появилось встроенное “серверное” API — MCP (Model Context Protocol). Это позволяет ИИ-ассистентам (LLM) взаимодействовать с вашим проектом: получать структуру, документацию, примеры.
* Инструменты MCP позволяют:
list_projects, get_best_practices, search_documentation, find_examples, а также миграции (modernize, onpush_zoneless_migration) и учебный режим (ai_tutor). * Это шаг к более тесной интеграции Angular-проектов с ИИ и автоматизации задач (генерация кода, рекомендации и т.п.).
4. Angular ARIA (preview)
* Добавлен новый пакет
@angular/aria (доступен в режиме Developer Preview). * Это “headless” библиотека компонентов с акцентом на доступность (accessibility): компоненты без стилей (можно стилизовать как хочется), поддерживают шаблоны ARIA.
* Поддерживаются такие паттерны: Accordion, Combobox, Grid, Listbox, Menu, Tabs, Toolbar, Tree.
5. Vitest — тестовый раннер по умолчанию
* Angular CLI теперь использует Vitest как основной тестовый фреймворк.
* Поддержка Karma/Jasmine устаревает — ожидается их удаление в следующих версиях (начиная с v22).
6. Упрощённый HttpClient
*
HttpClient теперь предоставляется в root-инжекторе по умолчанию — больше не нужно вручную вызывать provideHttpClient() при базовой настройке. * Добавлены новые опции:
responseType (в стиле Fetch API) и referrerPolicy для HTTP-запросов. 7. Улучшения шаблонов и компилятора
* В шаблонах теперь поддерживаются регулярные выражения: можно писать выражения вроде
{{ /\d+/.test(someValue) }} прямо в шаблоне. * У
@defer директивы теперь есть опция конфигурировать IntersectionObserver, например rootMargin, trigger и т.п. *
SimpleChanges (в ngOnChanges) сделан generic — теперь можно указывать тип компонента, чтобы получить сильную типизацию. 8. Контейнеры стилей (encapsulation)
* Появилась экспериментальная стратегия
ExperimentalIsolatedShadowDom, которая использует Shadow DOM, но “изолирует” стили компонента (чтобы они не проникали наружу и внешние стили не влияли). 9. Оптимизация сборки и инструментов разработки
* Улучшены tree-shaking и удаление неиспользуемого кода → уменьшение размера бандлов.
* Улучшения в dev-сервере: более быстрый HMR (горячая перезагрузка), лучшее кеширование и меньшее потребление памяти.
* CLI получает более удобные схемы миграции и улучшенную эргономику для совместимости с новыми паттернами (signal, zoneless и пр.).
## Влияние
👍6🍌3👏2
* Производительность: Переход к “zoneless” делает Angular быстрее, уменьшает накладные расходы, даёт более контролируемое обнаружение изменений.
* Современный подход к формам: Signal Forms упрощают разработку, особенно в реактивных сценариях с валидацией и сложной логикой.
* Доступность: Angular ARIA помогает создавать доступные интерфейсы “из коробки”, облегчая работу с экранными читателями и фокусом.
* ИИ и автоматизация: MCP-сервер создаёт новые возможности для интеграции ИИ-ассистентов: они могут “понимать” структуру вашего Angular-проекта и помогать в рефакторинге, генерации кода и изучении.
* Современные инструменты разработки: Vitest по умолчанию делает тестирование более современным и быстрым, а сборка — более оптимизированной.
https://blog.angular.dev/announcing-angular-v21-57946c34f14b
#angular
* Современный подход к формам: Signal Forms упрощают разработку, особенно в реактивных сценариях с валидацией и сложной логикой.
* Доступность: Angular ARIA помогает создавать доступные интерфейсы “из коробки”, облегчая работу с экранными читателями и фокусом.
* ИИ и автоматизация: MCP-сервер создаёт новые возможности для интеграции ИИ-ассистентов: они могут “понимать” структуру вашего Angular-проекта и помогать в рефакторинге, генерации кода и изучении.
* Современные инструменты разработки: Vitest по умолчанию делает тестирование более современным и быстрым, а сборка — более оптимизированной.
https://blog.angular.dev/announcing-angular-v21-57946c34f14b
#angular
Medium
Announcing Angular v21
Authors: Jens Kuehlers, Mark “Techson” Thompson
👍7🔥2🥰2
Оптимизация SQL в бэкенде
(продолжение предыдущего поста)
→ Оптимизация SQL обеспечивает эффективную работу запросов в бэкенде, снижает задержки и повышает общую производительность системы.
→ Плохо оптимизированный SQL приводит к медленному отклику, высокой загрузке процессора и узким местам в приложениях с высокой нагрузкой.
✓ 1. Изучение планов выполнения запросов
→ Используйте команды EXPLAIN или EXPLAIN ANALYZE, чтобы понять, как база данных выполняет запрос.
→ Помогает выявить полное сканирование таблиц, неэффективные соединения, отсутствующие индексы или ненужную сортировку.
✓ 2. Индексирование для ускорения поиска
→ Создавайте индексы для столбцов, которые часто используются в запросах (например, поля поиска, внешние ключи).
→ Используйте составные индексы при фильтрации по нескольким столбцам.
→ Избегайте избыточного индексирования: каждый индекс замедляет операции вставки, обновления и удаления.
✓ 3. Избегайте использования SELECT *
→ Выбирайте только необходимые столбцы с помощью конструкции SELECT столбец1, столбец2.
→ Это сокращает объём передаваемых данных и повышает скорость выполнения запроса.
✓ 4. Оптимизация соединений (JOIN)
→ Используйте подходящие типы соединений (INNER, LEFT, RIGHT) в зависимости от задачи.
→ Убедитесь, что столбцы, используемые в соединениях, проиндексированы.
→ Избегайте объединения слишком многих таблиц в одном запросе — при необходимости разбивайте сложную логику.
✓ 5. Эффективное использование условий WHERE
→ Применяйте фильтрацию как можно раньше, используя избирательные условия.
→ По возможности используйте индексированные столбцы в фильтрах WHERE.
→ Избегайте использования функций в WHERE (например, LOWER(name)), так как они препятствуют использованию индексов.
✓ 6. Ограничение количества возвращаемых строк
→ Используйте LIMIT или OFFSET для пагинации вместо возврата огромных наборов данных.
→ Это повышает производительность фронтенда, которому не требуется вся информация сразу.
✓ 7. Избегание проблемы N+1 запросов
→ Возникает при получении связанных данных в циклах.
→ Вместо этого используйте соединения (JOIN) или эффективные пакетные запросы.
✓ 8. Использование кэширования
→ Кэшируйте часто выполняемые запросы на чтение с помощью Redis или Memcached.
→ Это снижает нагрузку на базу данных и значительно повышает скорость работы.
✓ 9. Нормализация там, где нужно, денормализация — когда это оправдано
→ Нормализация уменьшает избыточность и повышает согласованность данных.
→ Денормализация ускоряет операции чтения при высокой нагрузке, если производительность — приоритет.
✓ 10. Оптимизация операций вставки и обновления
→ Используйте пакетные вставки вместо поочерёдной вставки строк.
→ Избегайте ненужных обновлений: проверяйте, изменились ли значения, прежде чем выполнять обновление.
✓ 11. Разделение больших таблиц
→ Разделяйте большие таблицы по дате или региону для ускорения запросов.
→ Полезно для логов, аналитики или данных временных рядов.
(продолжение предыдущего поста)
→ Оптимизация SQL обеспечивает эффективную работу запросов в бэкенде, снижает задержки и повышает общую производительность системы.
→ Плохо оптимизированный SQL приводит к медленному отклику, высокой загрузке процессора и узким местам в приложениях с высокой нагрузкой.
✓ 1. Изучение планов выполнения запросов
→ Используйте команды EXPLAIN или EXPLAIN ANALYZE, чтобы понять, как база данных выполняет запрос.
→ Помогает выявить полное сканирование таблиц, неэффективные соединения, отсутствующие индексы или ненужную сортировку.
✓ 2. Индексирование для ускорения поиска
→ Создавайте индексы для столбцов, которые часто используются в запросах (например, поля поиска, внешние ключи).
→ Используйте составные индексы при фильтрации по нескольким столбцам.
→ Избегайте избыточного индексирования: каждый индекс замедляет операции вставки, обновления и удаления.
✓ 3. Избегайте использования SELECT *
→ Выбирайте только необходимые столбцы с помощью конструкции SELECT столбец1, столбец2.
→ Это сокращает объём передаваемых данных и повышает скорость выполнения запроса.
✓ 4. Оптимизация соединений (JOIN)
→ Используйте подходящие типы соединений (INNER, LEFT, RIGHT) в зависимости от задачи.
→ Убедитесь, что столбцы, используемые в соединениях, проиндексированы.
→ Избегайте объединения слишком многих таблиц в одном запросе — при необходимости разбивайте сложную логику.
✓ 5. Эффективное использование условий WHERE
→ Применяйте фильтрацию как можно раньше, используя избирательные условия.
→ По возможности используйте индексированные столбцы в фильтрах WHERE.
→ Избегайте использования функций в WHERE (например, LOWER(name)), так как они препятствуют использованию индексов.
✓ 6. Ограничение количества возвращаемых строк
→ Используйте LIMIT или OFFSET для пагинации вместо возврата огромных наборов данных.
→ Это повышает производительность фронтенда, которому не требуется вся информация сразу.
✓ 7. Избегание проблемы N+1 запросов
→ Возникает при получении связанных данных в циклах.
→ Вместо этого используйте соединения (JOIN) или эффективные пакетные запросы.
✓ 8. Использование кэширования
→ Кэшируйте часто выполняемые запросы на чтение с помощью Redis или Memcached.
→ Это снижает нагрузку на базу данных и значительно повышает скорость работы.
✓ 9. Нормализация там, где нужно, денормализация — когда это оправдано
→ Нормализация уменьшает избыточность и повышает согласованность данных.
→ Денормализация ускоряет операции чтения при высокой нагрузке, если производительность — приоритет.
✓ 10. Оптимизация операций вставки и обновления
→ Используйте пакетные вставки вместо поочерёдной вставки строк.
→ Избегайте ненужных обновлений: проверяйте, изменились ли значения, прежде чем выполнять обновление.
✓ 11. Разделение больших таблиц
→ Разделяйте большие таблицы по дате или региону для ускорения запросов.
→ Полезно для логов, аналитики или данных временных рядов.
Telegram
METANIT.COM
Оптимизация SQL в бэкенде
(продолжение в следующем посте)
(продолжение в следующем посте)
👍11🍓4❤2👏2
Microsoft наконец признала, что почти все основные функции Windows 11 сломаны
Microsoft официально признала серьёзные проблемы в Windows 11, заявив, что почти все ключевые основные функции системы не работают из-за ошибок в компонентах XAML и обновлениях пакетов. Это подтверждение появилось в статье поддержки (KB5072911) после сбоев, начавшихся с обновления Patch Tuesday от июля 2025 года (KB5062553). Проблемы затрагивают оболочку системы (Shell) и влияют на версии Windows 11 24H2 и более новую 25H2, которые используют один и тот же код.
Сломанные функции:
Проблемы связаны с компонентами XAML и обновлениями пакетов MicrosoftWindows.Client.CBS_cw5n1h2txyewy, Microsoft.UI.Xaml.CBS_8wekyb3d8bbwe и MicrosoftWindows.Client.Core_cw5n1h2txyewy. Затронутые элементы оболочки включают меню "Пуск", панель задач, проводник и настройки Windows. Конкретные симптомы:
- Сбои explorer.exe;
- Сбои shelhost.exe;
- Проблемы с StartMenuExperienceHost;
- Настройки системы не запускаются молча;
- Сбои приложений при инициализации XAML-видов;
- Проводник работает, но панель задач не отображается;
- Неудачная инициализация других XAML-островов;
- Сбои ImmersiveShell.
Эти ошибки возникают при первом входе пользователя после накопительного обновления или в непостоянных установках ОС, таких как виртуальная инфраструктура настольных систем (VDI).
Microsoft поясняет: "После установки на ПК ежемесячного накопительного обновления Windows 11 версии 24H2, выпущенного в июле 2025 года или позже (KB5062553), различные приложения, такие как StartMenuExperienceHost, Поиск, Системные настройки, панель задач или Проводник, могут испытывать трудности".
При этом пользователи сталкиваются с серьёзными нарушениями в базовых функциях Windows: невозможностью доступа к меню "Пуск", панели задач, проводнику или настройкам. Это особенно заметно при входе после обновлений, в сценариях VDI, где пакеты нужно переустанавливать при каждом входе. Проблемы длятся уже четыре месяца с июля 2025 года, вызывая сбои, тихие отказы и неполную инициализацию интерфейса, что сильно затрудняет повседневную работу.
В Microsoft завявилии, что работают над исправлением, но пока предлагают обходные пути. Один из них — перезапуск службы Shell Infrastructure host (SIHost.exe) с помощью команд PowerShell для регистрации затронутых пакетов:
-
-
-
Второй вариант — скрипт PowerShell для входа (в формате batch-файла), который блокирует запуск проводника до установки пакетов и выполняет аналогичные команды регистрации.
https://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/
Microsoft официально признала серьёзные проблемы в Windows 11, заявив, что почти все ключевые основные функции системы не работают из-за ошибок в компонентах XAML и обновлениях пакетов. Это подтверждение появилось в статье поддержки (KB5072911) после сбоев, начавшихся с обновления Patch Tuesday от июля 2025 года (KB5062553). Проблемы затрагивают оболочку системы (Shell) и влияют на версии Windows 11 24H2 и более новую 25H2, которые используют один и тот же код.
Сломанные функции:
Проблемы связаны с компонентами XAML и обновлениями пакетов MicrosoftWindows.Client.CBS_cw5n1h2txyewy, Microsoft.UI.Xaml.CBS_8wekyb3d8bbwe и MicrosoftWindows.Client.Core_cw5n1h2txyewy. Затронутые элементы оболочки включают меню "Пуск", панель задач, проводник и настройки Windows. Конкретные симптомы:
- Сбои explorer.exe;
- Сбои shelhost.exe;
- Проблемы с StartMenuExperienceHost;
- Настройки системы не запускаются молча;
- Сбои приложений при инициализации XAML-видов;
- Проводник работает, но панель задач не отображается;
- Неудачная инициализация других XAML-островов;
- Сбои ImmersiveShell.
Эти ошибки возникают при первом входе пользователя после накопительного обновления или в непостоянных установках ОС, таких как виртуальная инфраструктура настольных систем (VDI).
Microsoft поясняет: "После установки на ПК ежемесячного накопительного обновления Windows 11 версии 24H2, выпущенного в июле 2025 года или позже (KB5062553), различные приложения, такие как StartMenuExperienceHost, Поиск, Системные настройки, панель задач или Проводник, могут испытывать трудности".
При этом пользователи сталкиваются с серьёзными нарушениями в базовых функциях Windows: невозможностью доступа к меню "Пуск", панели задач, проводнику или настройкам. Это особенно заметно при входе после обновлений, в сценариях VDI, где пакеты нужно переустанавливать при каждом входе. Проблемы длятся уже четыре месяца с июля 2025 года, вызывая сбои, тихие отказы и неполную инициализацию интерфейса, что сильно затрудняет повседневную работу.
В Microsoft завявилии, что работают над исправлением, но пока предлагают обходные пути. Один из них — перезапуск службы Shell Infrastructure host (SIHost.exe) с помощью команд PowerShell для регистрации затронутых пакетов:
-
Add-AppxPackage -Register -Path 'C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\appxmanifest.xml' -DisableDevelopmentMode;-
Add-AppxPackage -Register -Path 'C:\Windows\SystemApps\Microsoft.UI.Xaml.CBS_8wekyb3d8bbwe\appxmanifest.xml' -DisableDevelopmentMode;-
Add-AppxPackage -Register -Path 'C:\Windows\SystemApps\MicrosoftWindows.Client.Core_cw5n1h2txyewy\appxmanifest.xml' -DisableDevelopmentMode.Второй вариант — скрипт PowerShell для входа (в формате batch-файла), который блокирует запуск проводника до установки пакетов и выполняет аналогичные команды регистрации.
https://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/
Neowin
Microsoft finally admits almost all major Windows 11 core features are broken [Update]
Microsoft has confirmed that Windows 11 Shell and every associated core feature and element are actually broken, and have been like this for many months.
🤡35😁17❤🔥2🤯2🤬2❤1💔1
8 наиболее распространённых типов кибератак
(описание предыдущего поста)
1. Phishing Attack (Фишинговая атака)
* Суть: обманные письма, сообщения или сайты для получения конфиденциальной информации.
* Механизм: злоумышленник отправляет фишинговую ссылку → пользователь открывает её → хакер собирает учётные данные → использует их.
2. Ransomware (Программа-вымогатель)
* Суть: ПО, шифрующее файлы с требованием выкупа за их разблокировку.
* Механизм: заражение через инфицированный носитель → пользователь заражается → данные блокируются → требование выкупа.
3. Denial-of-Service (DoS) (Отказ в обслуживании)
* Суть: перегрузка системы или сети для нарушения их работы.
* Механизм: хакер использует бот для отправки ложного трафика на сервер → целевая система перегружается.
4. Man-in-the-Middle (MitM) (Человек посередине)
* Суть: перехват и изменение коммуникации между двумя сторонами без их ведома.
* Механизм: злоумышленник перехватывает оригинальное соединение между пользователем и веб-приложением.
5. SQL Injection (Внедрение SQL-кода)
* Суть: эксплуатация уязвимостей в запросах к базе данных для получения несанкционированного доступа.
* Механизм: хакер внедряет вредоносный SQL-запрос → сервер возвращает данные всех пользователей атакующему.
6. Cross-Site Scripting (XSS) (Межсайтовый скриптинг)
* Суть: внедрение вредоносных скриптов на веб-сайты, просматриваемые другими пользователями.
* Механизм: злоумышленник внедряет скрипт в базу данных → сервер отправляет заражённый код пользователям.
7. Zero-Day Exploits (Эксплойты нулевого дня)
* Суть: атаки, использующие неизвестные уязвимости до того, как разработчики успеют их устранить.
* Механизм: существует уязвимость → хакер её обнаруживает → запускает атаку → разработчики обнаруживают атаку, но не имеют времени на устранение.
8. DNS Spoofing (Подмена DNS)
* Суть: перенаправление DNS-запросов на вредоносные сайты для несанкционированного доступа.
* Механизм: злоумышленник внедряет поддельную DNS-запись → пользователь запрашивает реальный сайт → запрос перенаправляется на поддельный сайт.
(описание предыдущего поста)
1. Phishing Attack (Фишинговая атака)
* Суть: обманные письма, сообщения или сайты для получения конфиденциальной информации.
* Механизм: злоумышленник отправляет фишинговую ссылку → пользователь открывает её → хакер собирает учётные данные → использует их.
2. Ransomware (Программа-вымогатель)
* Суть: ПО, шифрующее файлы с требованием выкупа за их разблокировку.
* Механизм: заражение через инфицированный носитель → пользователь заражается → данные блокируются → требование выкупа.
3. Denial-of-Service (DoS) (Отказ в обслуживании)
* Суть: перегрузка системы или сети для нарушения их работы.
* Механизм: хакер использует бот для отправки ложного трафика на сервер → целевая система перегружается.
4. Man-in-the-Middle (MitM) (Человек посередине)
* Суть: перехват и изменение коммуникации между двумя сторонами без их ведома.
* Механизм: злоумышленник перехватывает оригинальное соединение между пользователем и веб-приложением.
5. SQL Injection (Внедрение SQL-кода)
* Суть: эксплуатация уязвимостей в запросах к базе данных для получения несанкционированного доступа.
* Механизм: хакер внедряет вредоносный SQL-запрос → сервер возвращает данные всех пользователей атакующему.
6. Cross-Site Scripting (XSS) (Межсайтовый скриптинг)
* Суть: внедрение вредоносных скриптов на веб-сайты, просматриваемые другими пользователями.
* Механизм: злоумышленник внедряет скрипт в базу данных → сервер отправляет заражённый код пользователям.
7. Zero-Day Exploits (Эксплойты нулевого дня)
* Суть: атаки, использующие неизвестные уязвимости до того, как разработчики успеют их устранить.
* Механизм: существует уязвимость → хакер её обнаруживает → запускает атаку → разработчики обнаруживают атаку, но не имеют времени на устранение.
8. DNS Spoofing (Подмена DNS)
* Суть: перенаправление DNS-запросов на вредоносные сайты для несанкционированного доступа.
* Механизм: злоумышленник внедряет поддельную DNS-запись → пользователь запрашивает реальный сайт → запрос перенаправляется на поддельный сайт.
Telegram
METANIT.COM
8 наиболее распространённых типов кибератак
(описание в следующем посте)
(описание в следующем посте)
❤🔥11❤2🔥2
3 типа шардирования базы данных:
* На основе диапазонов (range‑based)
* На основе хеширования (hash‑based)
* На основе арендаторов (tenant‑based)
Шардирование на основе диапазонов разделяет данные исходя из диапазонов значений ключа.
Шардирование на основе хеширования применяет хеш‑функцию к ключу шардирования, чтобы определить, в каком шарде хранятся данные.
Шардирование на основе арендаторов предоставляет каждому арендатору собственную базу данных.
* На основе диапазонов (range‑based)
* На основе хеширования (hash‑based)
* На основе арендаторов (tenant‑based)
Шардирование на основе диапазонов разделяет данные исходя из диапазонов значений ключа.
Шардирование на основе хеширования применяет хеш‑функцию к ключу шардирования, чтобы определить, в каком шарде хранятся данные.
Шардирование на основе арендаторов предоставляет каждому арендатору собственную базу данных.
🥴5❤3👏3🔥2
❤24🔥2👏1
❤5🔥2👏1💩1
Как работает сборщик мусора (Garbage Collector) в Java #java
(продолжение предыдущего поста)
Java использует систему автоматического управления памятью, которая называется сборщиком мусора (Garbage Collector, GC). Она освобождает память, занятую объектами, которые больше не нужны. Это помогает предотвратить утечки памяти и обеспечивает эффективную работу приложений.
Во время выполнения программы:
→ Виртуальная машина Java (JVM) постоянно отслеживает ссылки на объекты, чтобы определить, какие из них всё ещё доступны из активных потоков и исполняемого кода.
→ Объекты, к которым больше нет доступа, помечаются как подходящие для сборки мусора.
→ Сборщик мусора использует такие алгоритмы, как «Маркировка и очистка» (Mark‑and‑Sweep), «Копирование» (Copying) и «Поколение» (Generational Collection), чтобы выявить неиспользованные объекты и освободить занятую ими память.
→ Молодое поколение (Young Generation) часто обрабатывается с помощью быстрых и эффективных циклов малой сборки мусора (minor GC).
→ Объекты, пережившие несколько циклов, перемещаются в старое поколение (Old Generation), где с долгоживущими объектами работают циклы основной сборки мусора (major GC).
→ После очистки сборщик мусора уплотняет память, чтобы уменьшить фрагментацию и повысить производительность при выделении памяти.
→ Весь процесс выполняется автоматически, позволяя разработчикам на Java сосредоточиться на написании кода без ручного освобождения памяти.
Результат: Java обеспечивает стабильное и эффективное использование памяти, автоматически обнаруживая неиспользованные объекты и освобождая занятое ими пространство посредством оптимизированных циклов сборки мусора.
(продолжение предыдущего поста)
Java использует систему автоматического управления памятью, которая называется сборщиком мусора (Garbage Collector, GC). Она освобождает память, занятую объектами, которые больше не нужны. Это помогает предотвратить утечки памяти и обеспечивает эффективную работу приложений.
Во время выполнения программы:
→ Виртуальная машина Java (JVM) постоянно отслеживает ссылки на объекты, чтобы определить, какие из них всё ещё доступны из активных потоков и исполняемого кода.
→ Объекты, к которым больше нет доступа, помечаются как подходящие для сборки мусора.
→ Сборщик мусора использует такие алгоритмы, как «Маркировка и очистка» (Mark‑and‑Sweep), «Копирование» (Copying) и «Поколение» (Generational Collection), чтобы выявить неиспользованные объекты и освободить занятую ими память.
→ Молодое поколение (Young Generation) часто обрабатывается с помощью быстрых и эффективных циклов малой сборки мусора (minor GC).
→ Объекты, пережившие несколько циклов, перемещаются в старое поколение (Old Generation), где с долгоживущими объектами работают циклы основной сборки мусора (major GC).
→ После очистки сборщик мусора уплотняет память, чтобы уменьшить фрагментацию и повысить производительность при выделении памяти.
→ Весь процесс выполняется автоматически, позволяя разработчикам на Java сосредоточиться на написании кода без ручного освобождения памяти.
Результат: Java обеспечивает стабильное и эффективное использование памяти, автоматически обнаруживая неиспользованные объекты и освобождая занятое ими пространство посредством оптимизированных циклов сборки мусора.
Telegram
METANIT.COM
Как работает сборщик мусора (Garbage Collector) в Java #java
(продолжение в следующем посте)
(продолжение в следующем посте)
❤11🔥2🥰1
RAG - это генерация с дополнением посредством поиска (Retrieval Augmented Generation)
Вот как это работает на практике:
Knowledge Sources (Источники знаний) → PDF‑файлы, документы, базы данных
Embeddings (Векторные представления) → ваши данные разбиваются на фрагменты и преобразуются в векторы
Vector Database (Векторная база данных) → хранит всё для быстрого поиска
Retrieval (Поиск) → находит наиболее релевантный контекст (топ‑k результатов)
Augmentation (Дополнение) → запрос + контекст = более эффективный промпт
Generation (Генерация) → выдаёт точные ответы, основанные на контексте
Вот как это работает на практике:
Knowledge Sources (Источники знаний) → PDF‑файлы, документы, базы данных
Embeddings (Векторные представления) → ваши данные разбиваются на фрагменты и преобразуются в векторы
Vector Database (Векторная база данных) → хранит всё для быстрого поиска
Retrieval (Поиск) → находит наиболее релевантный контекст (топ‑k результатов)
Augmentation (Дополнение) → запрос + контекст = более эффективный промпт
Generation (Генерация) → выдаёт точные ответы, основанные на контексте
❤4👍2👏1