Патчи для iPhone будут выходить отдельно от прочих апдейтов iOS

Патчи для iPhone будут выходить отдельно от прочих апдейтов iOS

Патчи для iPhone будут выходить отдельно от прочих апдейтов iOS

В коде бета-версии iOS 14.5 обнаружены ссылки, говорящие о том, что Apple собирается изменить свой подход к доставке заплат, закрывающих уязвимости в компонентах мобильных операционных систем. Не исключено, что в скором времени такие патчи можно будет ставить без обновления ОС — отдельным пакетом, как на Android.

До сих пор, чтобы избавиться от очередных брешей в iPhone или iPad, пользователям приходилось устанавливать новую сборку мобильной ОС. Так, например, недавний выпуск iOS 14.4.1 устранил всего лишь одну, хотя и весьма серьезную уязвимость, и внести нужные исправления можно было только через апгрейд.

Примечательно, что пользователи macOS давно имеют возможность устанавливать актуальные патчи, не меняя версию ОС. При тестировании iOS 14.5 в настройках была обнаружена новая функция — Install Security Updates («Установить обновления системы безопасности»), которая может сигнализировать о том, что Apple решила предоставить такое же удобство и на мобильных устройствах.

 

В коде iOS 14.5 также найдены упоминания о том, что при установке очередного обновления iOS некоторые загруженные ранее апдейты — в частности, патчи (security update) — придется удалить. Каким образом Apple собирается это реализовать, пока неясно, но можно предположить, что пользователям просто будет отображаться соответствующая подсказка, когда они захотят перейти, скажем, на iOS 15.

Выход стабильной версии iOS 14.5 ожидается в ближайшие месяцы. С ее выпуском Apple должна значительно усилить приватность — активировать функциональность App Tracking Transparency, заставляющую приложения запрашивать у пользователя разрешение на отслеживание его действий, сбор данных для создания цифровых отпечатков и установку сторонних SDK (для сбора аналитики или персонализации рекламы). Пользователи также смогут, руководствуясь подсказками, объявлять свой выбор — согласие или отказ — для каждого приложения при его открытии.

Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Цена поездки в Яндекс Go — это не расстояние, умноженное на минуты и километры. В расчёт вмешиваются геозоны, спрос, скидки, платные дороги, дополнительные остановки и требования вроде перевозки кота, велосипеда или лыж. Чтобы управлять этим хозяйством без бесконечных деплоев, разработчики вынесли алгоритм ценообразования из кода сервиса в собственный язык.

Как объяснили разработчики в статье на Хабре, прайсинг работает не только при заказе машины.

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

 

Сначала сервисы параллельно собирают параметры поездки: тарифную категорию, геозоны, скидки, повышенный спрос и дополнительные услуги. Зависимости между источниками выстраиваются в граф, а запросы выполняются асинхронно на базе userver. Если некритичный источник не ответил, весь расчёт не падает.

 

Сам алгоритм раньше можно было бы держать в C++, но он меняется в среднем дважды в неделю. Выкатка сервиса на 50 подов занимает около 40 минут, а лес динамических конфигов быстро превратил бы код в музей условных операторов.

Поэтому Яндекс разработал собственный DSL. В нём есть условия, функции, неизменяемые значения и fold вместо циклов. Правила собираются в последовательную цепочку: каждое преобразование получает текущую цену и параметры, а возвращает новый результат с метаданными. Грамматику описали через ANTLR 4, а верификатор Z3 проверяет, что программа не выдаст некорректную цену.

 

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

 

В итоге прайсинг превратился в отдельную платформу, которой уже пользуются Такси, Доставка и сервис зарядки электромобилей.

RSS: Новости на портале Anti-Malware.ru