Apple выпустил язык программирования Swift 5.3 и открыл код библиотеки Swift System

Компания Apple объявила об открытии исходных текстов библиотеки Swift System, предоставляющей идеоматический набор программных интерфейсов к системным вызовам и низкоуровневым типам данных. Изначально Swift System поддерживал только системные вызовы платформ Apple, но теперь портирован и для Linux. Код Swift System написан на языке Swift и распространяется под лицензией Apache 2.0.

Swift System предоставляет единую точку доступа к системным интерфейсам, которую можно использовать на всех поддерживаемых платформах без применения в Swift-программах специфичных обвязок на языке Си. При этом Swift System не унифицирует сами системные вызовы, а предоставляет отдельное подмножество API для каждой поддерживаемой платформы, учитывающее поведение данной платформы и точно отражающее низкоуровневые интерфейсы операционной системы. Ключевой целью создания Swift System является упрощение разработки кросс-платформенных библиотек и приложений, таких как SwiftNIO и SwiftPM. Swift System не отменяет необходимость ветвления на основе «#if os()» при обращении к низкоуровневым примитивам, но делает данную работу более безопасной и удобной.

Также можно отметить публикацию релиза языка программирования Swift 5.3. Официальные сборки подготовлены для Linux (Ubuntu 16.04/18.04/20.04, СentOS 7/8), macOS (Xcode 12) и Windows 10. Исходные тексты распространяются под лицензией Apache 2.0.

В новом выпуске добавлена начальная поддержка платформы Windows и началась поставка инструментария для сборки и запуска Swift-приложений в Windows 10. Продолжено оттачивание функциональности языка. Из новых возможностей отмечается добавление инициализатора для типа String, расширение применение выражения «where», изменение семантики didSet, поддержка указания нескольких шаблонов в выражениях Catch, добавление типа Float16, атомарные операции с памятью.

Снижен размер результирующих приложений — если в Swift 4 размер собранной программы превышал вариант на Objective-C в 2.3 раза, то теперь разрыв сокращён до 1.5 раза. В новом выпуске также заметно ускорена инкрементальная сборка и сборка кода с большим числом свойств и функций, импортируемых из других библиотек. Расширены средства диагностики в компиляторе и качество выводимых сообщений об ошибках. В пакетном менеджере реализована возможность включения в пакеты дополнительных ресурсов, необходимых во время исполнения, таких как изображения. В пакетный менеджер также добавлена поддержка компонентов для локализации и возможность определения условных зависимостей.

Напомним, что язык Swift наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщённое программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования. Версия для Linux не привязана к Objective-C Runtime, что позволяет использовать язык в окружениях, в которых отсутствует поддержка Objective-C.

Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, выполняемый в тестах Apple на 30% быстрее кода на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.

Источник: [ссылка]

Выпуск глобальной децентрализованной файловой системы IPFS 0.7

Представлен выпуск децентрализованной файловой системы IPFS 0.7 (InterPlanetary File System), образующей глобальное версионированное хранилище файлов, развёрнутое в форме P2P-сети, образованной из систем участников. IPFS комбинирует идеи, ранее реализованные в таких системах, как Git, BitTorrent, Kademlia, SFS и Web, и напоминает единый «рой» BitTorrent (пиры, участвующие в раздаче), обменивающийся Git-объектами. IPFS отличается адресацией по содержимому, а не месту размещения и произвольным именам. Код эталонной реализации написан на языке Go и распространяется под лицензиями Apache 2.0 и MIT.

В новой версии произведено отключение по умолчанию транспорта SECIO, на смену которому в прошлом выпуске был предложен транспорт NOISE, основанный на протоколе Noise и развиваемый в рамках модульного сетевого стека для P2P-приложений libp2p. В качестве запасного транспорта оставлен TLSv1.3. Администраторам узлов, использующих старые версии IPFS (Go IPFS ‹ 0.5 или JS IPFS ‹ 0.47) рекомендуется обновить ПО для того чтобы избежать снижения производительности.

В новой версии также осуществлён переход на использование по умолчанию ключей ed25519 вместо RSA. Поддержка старых RSA-ключей сохранена, но новые ключи теперь будут генерироваться с использованием алгоритма ed25519. Применение встроенных открытых ключей ed25519 решает проблему с хранением открытых ключей, например, для верификации подписанных данных при использовании ed25519 достаточно информации о PeerId. Имена ключа в IPNS-путях теперь кодируется с использованием алгоритма base36 CIDv1 вместо base58btc.

Помимо смены типа ключей по умолчанию в IPFS 0.7 добавлена возможность ротации идентификационных ключей. Для смены ключа узла теперь можно выполнить команду «ipfs key rotate». Кроме того, добавлены новые команды для импорта и экспорта ключей («ipfs key import» и «ipfs key export»), которые можно применять с целью резервного копирования, а также команда «ipfs dag stat» для вывода статистики о DAG (Distributed Acyclic Graphs).

Напомним, что в IPFS ссылка для доступа к файлу непосредственно связана с его содержимым и включает криптографический хэш содержимого. Адрес файла невозможно произвольно переименовать, он может измениться только после изменения содержимого. Аналогично невозможно внести изменение в файл без изменения адреса (старый вариант останется на прежнем адресе, а новый будет доступен через другой адрес, так как хэш от содержимого файла изменится). Учитывая то, что идентификатор файла меняется при каждом изменении, чтобы каждый раз не передавать новые ссылки предоставляются сервисы для привязки постоянных адресов, учитывающих разные версии файла (IPNS), или закрепления псевдонима по аналогии с традиционными ФС и DNS (MFS (Mutable File System) и DNSLink).

По аналогии с BitTorrent данные непосредственно хранятся на системах участников, которые обмениваются информацией в режиме P2P, без привязки к централизованным узлам. При необходимости получить файл с определённым содержимым система находит участников, у которых имеется данный файл и отдаёт его с их систем частями в несколько потоков. После загрузки файла на свою систему участник автоматически становится одной из точек по его раздаче. Для определения участников сети на узлах которых присутствует интересующий контент используется распределённая хэш таблица (DHT). Для доступа к глобальной ФС IPFS может использоваться протокол HTTP или монтироваться виртуальная ФС /ipfs при помощи модуля FUSE.

IPFS помогает решить такие задачи как надёжность хранения (если исходное хранилище будет выведено из строя, файл можно загрузить с систем других пользователей), противостояние цензурированию контента (для блокировки потребуется заблокировать все системы пользователей, на которых имеется копия данных) и организация доступа при отсутствии прямого соединения к интернету или при плохом качестве канала связи (можно загрузить данные через ближайших участников в локальной сети). Кроме хранения файлов и обмена данными IPFS может использоваться как основа для создания новых сервисов, например, для организации работы сайтов, не привязанных к серверам, или для создания распределённых приложений.

Источник: [ссылка]

Доступен CODE 6.4, дистрибутив для развёртывания LibreOffice Online

Компания Collabora опубликовала выпуск платформы CODE 6.4 (Collabora Online Development Edition), предлагающей специализированный дистрибутив для быстрого развёртывания LibreOffice Online и организации совместной удалённой работы с офисным пакетом через Web для достижения функциональности, похожей на Google Docs и Office 365. Дистрибутив оформлен в виде преднастроенного контейнера для системы Docker и также доступен в виде пакетов для популярных дистрибутивов Linux. Используемые в продукте наработки размещаются в общедоступных репозиториях LibreOffice, LibreOfficeKit, loolwsd (Web Services Daemon) и loleaflet (web-клиент). Наработки, предложенные в версии CODE 6.4, войдут в состав штатного LibreOffice 7.1.

CODE включает все компоненты, необходимые для работы сервера LibreOffice Online и предоставляет возможность быстрого запуска и ознакомления с текущим состоянием развития редакции LibreOffice для Web. Через web-браузер поддерживается работа с документами, электронными таблицами и презентациями, в том числе возможность совместной работы нескольких пользователей, которые могут одновременно вносить изменения, оставлять комментарии и отвечать на вопросы. Вклад, текущие правки и позиции курсоров каждого пользователя выделяются разными цветами. Для организации облачного хранения документов могут использоваться системы Nextcloud, ownCloud, Seafile и Pydio.

Отображаемый в браузере интерфейс редактирования формируется с использованием штатного движка LibreOffice и позволяет добиться полностью идентичного отображения структуры документа с версией для настольных систем. Интерфейс выводится при помощи HTML5-бэкенда библиотеки GTK, предназначенного для отрисовки вывода GTK-приложений в окне web-браузера. Для вычислений, мозаичной отрисовки и многослойной компоновки документа применяется штатный LibreOfficeKit. Для организации серверного взаимодействия с браузером, передачи изображений с частями интерфейса, организации кэширования кусочков изображений и работы с хранилищем документов задействован специальный Web Services Daemon.

Основные изменения:

  • Нумерация выпусков синхронизирована с продуктами Collabora Office, поэтому после версии 4.2 был сразу сформирован релиз CODE 6.4. Изменение отражает инициативу по приведению всех продуктов Collabora, в том числе приложений для мобильных платформ, к общей нумерации.
  • По умолчанию предложена новая панель инструментов NotebookBar, оформленная в стиле Ribbon и повторяющая одноимённую панель из настольной редакции LibreOffice. Панель предлагает более простые для восприятия кнопки и интуитивно понятную разбивку инструментов по вкладкам.
  • Добавлен режим сворачивания панели NotebookBar, позволяющий перейти к использованию компактной однострочной компоновки, при которой видны только сами вкладки (клик на активной вкладке скрывает инструменты, а повторный клик возвращает).
  • В верхнем левом углу, независимо от сворачивая NotebookBar, теперь показывается выпадающее меню (гамбургер) с дополнительными настройками и инструментами для управления совместной работой и языковыми возможностями.
  • На основе панели NotebookBar и вкладок модернизировано оформление Writer, Impress и Calc.
  • Для пользователей, привыкших к классической панели, предоставлена возможность возвращения старого интерфейса через установку в файле loolwsd.xml параметра user_interface в значение «classic».
  • Переписан код для отрисовки электронных таблиц. Кроме увеличения производительности новая реализация позволила добавить такие новшества, как заморозка строк и столбцов — после нажатия кнопки заморозки в панели или через меню «View › Freeze Rows», при прокрутке выбранная строка или столбец остаются видимыми слева или вверху.
  • Добавлены средства для совместной работы с PDF-файлами. Пользователи теперь могут вместе разбирать PDF-документ, прикреплять аннотации и добавлять комментарии.
  • Улучшено отображение презентаций, диаграмм, картинок и форм при работе с форматами OOXML, применяемыми в пакете Microsoft Office. В том числе добавлена поддержка отображения полупрозрачного текста, улучшена поддержка SmartArt, налажено отображение цветных градиентов в презентациях.

Источник: [ссылка]

Выпуск Firefox Reality 12, браузера для устройств виртуальной реальности

Компания Mozilla опубликовала выпуск Firefox Reality 12, специализированного браузера для систем виртуальной реальности. Firefox Reality оформлен в виде приложения для платформы Android и доступен для 3D-шлемов Samsung Gear VR, Oculus Go, VIVE Focus, HoloLens 2 и Pico VR. Браузер использует полноценный web-движок Quantum, но предлагает принципиально иной трёхмерный интерфейс пользователя, позволяющий осуществлять навигацию по сайтам внутри виртуального мира или в составе систем дополненной реальности.

Кроме предназначенного для управления через 3D-шлем интерфейса, позволяющего просматривать традиционные двумерные страницы, браузер предлагает web-разработчикам API WebXR и WebVR с VR-расширениями для WebGL и CSS, которые дают возможность создавать специализированные трехмерные web-приложения для взаимодействия в виртуальном пространстве и воплощать в жизнь новые методы 3D-навигации, механизмы ввода информации и интерфейсы для поиска информации. Также поддерживается просмотр в 3D-шлеме пространственных видео, снятых в режиме 360 градусов. Управление производится через VR-контроллеры, а ввод данных в web-формы через виртуальную или реальную клавиатуру.

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

В новой версии:

  • Добавлена поддержка дополнений. Для установки доступны такие дополнения, как uBlock, Dark Reader, HTTPS Everywhere и Privacy Badger.

  • Реализована возможность автозаполнения содержимого web-форм, в том числе запоминание введённых паролей.
  • Изменено оформление библиотеки, предоставляющей интерфейс для доступа к закладками, истории посещений, загрузкам и дополнениям. В строку состояния добавлены вспомогательные индикаторы, такие как уровень заряда аккумулятора в контроллере и шлеме виртуальной реальноcти, а также текущее время.
  • Изменено оформление экрана рекомендованного контента (Content Feed). В левой части добавлено меню с категориями.

Источник: [ссылка]

Релиз СУБД PostgreSQL 13

После года разработки опубликована новая стабильная ветка СУБД PostgreSQL 13. Обновления для новой ветки будут выходить в течение пяти лет до ноября 2025 года.

Основные новшества:

  • Реализована дедупликация записей в индексах B-tree, позволившая поднять производительность запросов и сократить потребление дискового пространства при индексации записей с повторяющимися данными. Дедупликация производится через периодический запуск обработчика, выполняющего слияние групп повторяющихся кортежей и замену дубликтов на ссылки на одну хранимую копию.
  • Повышена производительность запросов, в которых используются агрегатные функции, сгруппированные наборы (GROUPING SETS) или секционированные (партицированные) таблицы. Оптимизации связаны с использованием при агрегировании хэшей вместо фактических данных, что позволяет избежать размещения всех данных в памяти при обработке больших запросов. При секционировании расширено число ситуаций, при которых секции могут быть отброшены или объединены.
  • Добавлена возможность использования расширенной статистики, создаваемой при использовании команды «CREATE STATISTICS», для улучшения эффективности планирования запросов, содержащих условия «OR» или поиск в списках с использованием выражений «IN» или «ANY».
  • Ускорена чистка индексов при выполнении операции VACUUM за счёт распараллеливания сборки мусора в индексах. При помощи нового параметра «PARALLEL» администратор может определить число потоков, которые будут одновременно запускаться для VACUUM. Добавлена возможность инициирования автоматического выполнения VACUUM после вставки данных.
  • Добавлена поддержка инкрементальной сортировки, позволяющей использовать данные, отсортированные на предыдущем этапе, для ускорения сортировки на последующих этапах обработки запроса. Для включения новой оптимизации в планировщике запросов предусмотрена настройка «enable_incremental_sort«, которая включена по умолчанию.
  • Добавлена возможность ограничения размера слотов репликации, позволяющих в автоматическом режиме гарантировать сохранение сегментов лога отложенной записи (WAL) до тех пор, пока они не будут получены всеми запасными серверами, принимающими реплики. Слоты репликации также не позволяют основному серверу удалить строки, которые могут привести к конфликтам, даже если запасной сервер отключён. При помощи параметра max_slot_wal_keep_size теперь можно ограничить максимальный размер WAL-файлов для предотвращения исчерпания места на диске.
  • Расширены возможности мониторинга активности СУБД: в команде EXPLAIN обеспечен показ дополнительной статистики по использованию WAL-лога; в pgbasebackup предоставлена возможность отследить состояние выполнения непрерывных бэкапов; в команде ANALYZE реализована индикация прогресса выполнения операции.
  • Добавлена новая команда pg_verifybackup для проверки целостности резервных копий, создаваемых командой pg_basebackup.
  • При работе с JSON с использованием операторов jsonpath разрешено применение функции datetime() для преобразования форматов времени (строк ISO 8601 и родных типов времени PostgreSQL). Например, можно использовать конструкции «jsonb_path_query(‘[«2015-8-1», «2015-08-12»]’, ‘$[*] ? (@.datetime() Добавлена встроенная функция gen_random_uuid() для генерации идентификаторов UUID v4.
  • В системе секционирования реализована полная поддержка логической репликации и задаваемых выражением «BEFORE» триггеров, работающих на уровне строк.
  • Синтаксис «FETCH FIRST» теперь допускает использование выражения «WITH TIES», позволяющего вернуть дополнительные строки, которые находятся в хвосте результирующего набора, получаемого после применения «ORDER BY».
  • Реализована концепция заслуживающих доверия дополнений («trusted extension«), которые могут быть установлены обычными пользователями, не имеющими прав администратора СУБД. Список подобных дополнений изначально предопределён и может быть расширен суперпользователем. В число заслуживающих доверия дополнений включены pgcrypto, tablefunc, hstore и т.п.
  • В механизме подключения внешних таблиц Foreign Data Wrapper (postgres_fdw) реализована поддержка аутентификации на основе сертификатов. При использовании SCRAM-аутентификации клиентам разрешено запрашивать «привязку канала» (channel binding).

Источник: [ссылка]

Релиз СУБД PostgreSQL 13

После года разработки опубликована новая стабильная ветка СУБД PostgreSQL 13. Обновления для новой ветки будут выходить в течение пяти лет до ноября 2025 года.

Основные новшества:

  • Реализована дедупликация записей в индексах B-tree, позволившая поднять производительность запросов и сократить потребление дискового пространства при индексации записей с повторяющимися данными. Дедупликация производится через периодический запуск обработчика, выполняющего слияние групп повторяющихся кортежей и замену дубликтов на ссылки на одну хранимую копию.
  • Повышена производительность запросов, в которых используются агрегатные функции, сгруппированные наборы (GROUPING SETS) или секционированные (партицированные) таблицы. Оптимизации связаны с использованием при агрегировании хэшей вместо фактических данных, что позволяет избежать размещения всех данных в памяти при обработке больших запросов. При секционировании расширено число ситуаций, при которых секции могут быть отброшены или объединены.
  • Добавлена возможность использования расширенной статистики, создаваемой при использовании команды «CREATE STATISTICS», для улучшения эффективности планирования запросов, содержащих условия «OR» или поиск в списках с использованием выражений «IN» или «ANY».
  • Ускорена чистка индексов при выполнении операции VACUUM за счёт распараллеливания сборки мусора в индексах. При помощи нового параметра «PARALLEL» администратор может определить число потоков, которые будут одновременно запускаться для VACUUM. Добавлена возможность инициирования автоматического выполнения VACUUM после вставки данных.
  • Добавлена поддержка инкрементальной сортировки, позволяющей использовать данные, отсортированные на предыдущем этапе, для ускорения сортировки на последующих этапах обработки запроса. Для включения новой оптимизации в планировщике запросов предусмотрена настройка «enable_incremental_sort«, которая включена по умолчанию.
  • Добавлена возможность ограничения размера слотов репликации, позволяющих в автоматическом режиме гарантировать сохранение сегментов лога отложенной записи (WAL) до тех пор, пока они не будут получены всеми запасными серверами, принимающими реплики. Слоты репликации также не позволяют основному серверу удалить строки, которые могут привести к конфликтам, даже если запасной сервер отключён. При помощи параметра max_slot_wal_keep_size теперь можно ограничить максимальный размер WAL-файлов для предотвращения исчерпания места на диске.
  • Расширены возможности мониторинга активности СУБД: в команде EXPLAIN обеспечен показ дополнительной статистики по использованию WAL-лога; в pgbasebackup предоставлена возможность отследить состояние выполнения непрерывных бэкапов; в команде ANALYZE реализована индикация прогресса выполнения операции.
  • Добавлена новая команда pg_verifybackup для проверки целостности резервных копий, создаваемых командой pg_basebackup.
  • При работе с JSON с использованием операторов jsonpath разрешено применение функции datetime() для преобразования форматов времени (строк ISO 8601 и родных типов времени PostgreSQL). Например, можно использовать конструкции «jsonb_path_query(‘[«2015-8-1», «2015-08-12»]’, ‘$[*] ? (@.datetime() Добавлена встроенная функция gen_random_uuid() для генерации идентификаторов UUID v4.
  • В системе секционирования реализована полная поддержка логической репликации и задаваемых выражением «BEFORE» триггеров, работающих на уровне строк.
  • Синтаксис «FETCH FIRST» теперь допускает использование выражения «WITH TIES», позволяющего вернуть дополнительные строки, которые находятся в хвосте результирующего набора, получаемого после применения «ORDER BY».
  • Реализована концепция заслуживающих доверия дополнений («trusted extension«), которые могут быть установлены обычными пользователями, не имеющими прав администратора СУБД. Список подобных дополнений изначально предопределён и может быть расширен суперпользователем. В число заслуживающих доверия дополнений включены pgcrypto, tablefunc, hstore и т.п.
  • В механизме подключения внешних таблиц Foreign Data Wrapper (postgres_fdw) реализована поддержка аутентификации на основе сертификатов. При использовании SCRAM-аутентификации клиентам разрешено запрашивать «привязку канала» (channel binding).

Источник: [ссылка]

Компания Frictional Games открыла код игр серии Amnesia

Компания Frictional Games объявила об открытии полных исходных текстов 3D-игр в жанре «выживание в кошмаре» — Amnesia: The Dark Descent и Amnesia: A Machine for Pigs, выпущенных в 2010 и 2013 годах. Игровые ресурсы остаются проприетарными. Это не первая публикации кода игр Frictional Game, в 2010 году данная компания открыла код игрового движка HPL1 и написанной на нём игры «Penumbra: Overture«.

Код игр открыт под свободной лицензией GPLv3 и опубликован на GitHub (Amnesia: The Dark Descent, Amnesia: A Machine For Pigs). Игры написаны на С++ и используют SDL для обработки ввода и OpenGL для графики. Репозитории включают файлы для сборки для Linux и macOS при помощи CMake и для Windows с использованием Visual Studio 2010. Кроме кода непосредственно игр, открыты также исходные тексты связанных с ними игровых редакторов. Ожидается, что открытие кода упростит развитие модов, которых для указанных игр уже насчитывается более тысячи, и даст возможность создания новых открытых игровых движков на основе технологий, задействованных в играх Amnesia.

Из предложенных в открытом коде возможностей, которые могут оказаться полезными разработчикам игровых движков, отмечаются:

  • Карты теней со сглаженными краями.
  • Работающая в реальном времени система отсечения невидимых областей, работающая с динамическими объектами.
  • Система автоматического рендеринга статических объектов, работающая в пакетном режиме.
  • Система отложенной отрисовки теней.
  • Полнофункциональный редактор, в том числе поддерживающий такие возможности, как подбор алгоритмов и подгонка видимых областей.
  • Простая система искусственного интеллекта для создания ботов и умных агентов.
  • Продвинутая система физической симуляции звуков.
  • Система построения взаимодействия на основе физических процессов.
  • Собственный звуковой движок, использующий API OpenAL.
  • Движок с реализацией различных технологий рендеринга и геймплея.

Источник: [ссылка]

Доступны Tor Browser 10.0 и дистрибутив Tails 4.11

Сформирован значительный релиз специализированного браузера Tor Browser 10, в котором осуществлён переход на ESR-ветку Firefox 78. Браузер сосредоточен на обеспечении анонимности, безопасности и приватности, весь трафик перенаправляется только через сеть Tor. Обратиться напрямую через штатное сетевое соединение текущей системы невозможно, что не позволяет отследить реальный IP пользователя (в случае взлома браузера, атакующие могут получить доступ к системным параметрам сети, поэтому для полного блокирования возможных утечек следует использовать такие продукты, как Whonix). Сборки Tor Browser подготовлены для Linux, Windows и macOS.

Подготовка новой версии для Android задерживается в связи с переходом на кодовую базу нового Firefox для Android, развиваемого в рамках проекта Fenix, использующего движок GeckoView и набор библиотек Mozilla Android Components. До готовности нового Tor Browser для Android будет продолжено сопровождение прошлой ветки 9.5.

Для обеспечения дополнительной защиты в состав Tor Browser входит дополнение HTTPS Everywhere, позволяющее использовать шифрование трафика на всех сайтах, где это возможно. Для снижения угрозы от проведения атак с использованием JavaScript и блокирования по умолчанию плагинов в комплекте поставляется дополнение NoScript. Для борьбы с блокировкой и инспектированием трафика применяются fteproxy и obfs4proxy.

Для организации шифрованного канала связи в окружениях, блокирующих любой трафик кроме HTTP, предлагаются альтернативные транспорты, которые, например, позволяют обойти попытки блокировать Tor в Китае. Для защиты от отслеживания перемещения пользователя и от выделения специфичных для конкретного посетителя особенностей отключены или ограничены API WebGL, WebGL2, WebAudio, Social, SpeechSynthesis, Touch, AudioContext, HTMLMediaElement, Mediastream, Canvas, SharedWorker, Permissions, MediaDevices.enumerateDevices и screen.orientation, а также отключены средства отправки телеметрии, Pocket, Reader View, HTTP Alternative-Services, MozTCPSocket, «link rel=preconnect», модифицирован libmdns.

В новом выпуске осуществлён переход на новый значительный выпуск Tor 0.4.4 и ESR-ветку Firefox 78. Основное внимание при разработке Tor Browser 10 было уделено стабилизации сборки на основе новой ESR-ветки Firefox, полностью избавленной от использования XBL (XML Binding Language) и XUL. Обновлены входящие в состав браузерные дополнения NoScript 11.0.44 и Tor Launcher 0.2.25 (проведена замена компонентов, использующих XUL).

Отключены различные подсистемы и режимы Firefox 78, в том числе менеджер паролей и автогенератор паролей, настройка media.webaudio.enabled, логика автоопределения систем родительского контроля и ведения связанных с ним логов, расширенная защита от отслеживания перемещений (в Tor Browser своя система блокировки отслеживания). Изменено несколько десятков настроек. Заявлено о скором прекращении поддержки дистрибутива CentOS 6, начиная с выпуска Tor Browser 10.5 поддержка данной ветки CentOS будет прекращена.

Дополнительно можно отметить новый выпуск специализированного дистрибутива Tails 4.11 (The Amnesic Incognito Live System), основанного на пакетной базе Debian и предназначенного для обеспечения анонимного выхода в сеть. Анонимный выход в Tails обеспечивается системой Tor. Все соединения, кроме трафика через сеть Tor, по умолчанию блокируются пакетным фильтром. Для хранения пользовательских данных в режиме сохранения данных между запусками применяется шифрование. Для загрузки подготовлен iso-образ, способный работать в Live-режиме, размером 1 Гб.

В новом выпуске Tails ядро Linux обновлено до версии 5.7.11, задействованы новые выпуски Tor Browser 10, Thunderbird 68.12 и python3-trezor 0.11.6. В менеджере паролей KeePassXC изменено местоположение БД Passwords.kdbx (/home/amnesia/Passwords.kdbx вместо /home/amnesia/Persistent/keepassx.kdbx) Убрана функция включения Wi-Fi Hotspot в сетевом конфигураторе, которая не работает в Tails.

Добавлена возможность сохранения в постоянное хранилище параметров языка, клавиатуры и дополнительных настроек, установленных через интерфейс приветствия входа в систему (Welcome Screen). Данные настройки будут использованы в последующих сеансах после активации постоянного хранилища (Persistent Storage) в Welcome Screen.

Источник: [ссылка]

Выпуск Samba 4.13.0

Представлен релиз Samba 4.13.0, продолживший развитие ветки Samba 4 с полноценной реализацией контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000 и способного обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10. Samba 4 является многофункциональным серверным продуктом, предоставляющим также реализацию файлового сервера, сервиса печати и сервера идентификации (winbind).

Ключевые изменения в Samba 4.13:

  • Добавлена защита от уязвимости ZeroLogon (CVE-2020-1472), позволяющей злоумышленнику получить права администратора в контроллере домена в системах, не использующих настройку «server schannel = yes».
  • Требования к минимальной версии Python повышены с Python 3.5 до Python 3.6. Возможность сборки файлового сервера с Python 2 пока сохранена (перед запуском ./configure’ и ‘make’ следует установить переменную окружения ‘PYTHON=python2’), но в следующей ветке она будет удалена и для сборки будет обязательным наличие Python 3.6.
  • Функциональность «wide links = yes», позволяющая администраторам файлового сервера создавать символические ссылки в область вне текущего SMB/CIFS-раздела, вынесена из smbd в отдельный модуль «vfs_widelinks». В настоящее время данный модуль автоматически загружается при наличии в настройках параметра «wide links = yes». В будущем планируется удалить поддержку «wide links = yes» из-за проблем с безопасностью, а пользователям samba настоятельно рекомендуется вместо «wide links = yes» перейти к применению монтирования внешних частей ФС при помощи «mount —bind».
  • Объявлена устаревшей поддержка классического режима контроллера домена. Пользователям NT4-подобных контроллеров доменов (‘classic’) следует перейти на использования контроллеров домена Samba Active Directory для возможности работы с современными Windows-клиентами.
  • Объявлены устаревшими небезопасные методы аутентификации, которые можно использовать только с протоколом SMBv1: «domain logons», «raw NTLMv2 auth», «client plaintext auth», «client NTLMv2 auth», «client lanman auth» и «client use spnego».
  • Из smb.conf удалена поддержка опций «ldap ssl ads» и «server schannel».

Источник: [ссылка]

Релиз Firefox 81

Состоялся релиз web-браузера Firefox 81. Кроме того, сформировано обновление ветки с длительным сроком поддержки 78.3.0. Формирование обновлений Firefox 68.x прекращено, пользователям данной ветки будет предложено автоматическое обновление до выпуска 78.3. На стадию бета-тестирования перешла ветка Firefox 82, релиз которой намечен на 20 октября.

Основные новшества:

  • Предложен новый интерфейс предпросмотра перед выводом на печать, который примечателен открытием в текущей вкладке с заменой имеющегося содержимого (старый интерфейс предпросмотра приводил к открытию нового окна), т.е. работает по аналогии с режимом читателя. Инструменты для настройки формата страницы и параметров вывода на печать перенесены из верхней части в правую панель, в которой также появились дополнительные опции, такие как управление включением печати заголовков и фона, а также возможность выбора принтера. Для включения или отключения нового интерфейса можно использовать настройку print.tab_modal.enabled.
  • Модернизирован интерфейс встроенного просмотрщика PDF-документов (заменены пиктограммы, использован светлый фон для панели с инструментами). Добавлена поддержка механизма AcroForm для заполнения форм ввода и сохранения результирующего PDF с введёнными пользователем данными.
  • Предоставлена возможность приостановки воспроизведения звука и видео в Firefox при помощи специальных мультимедийных кнопок на клавиатуре или звуковой гарнитуре без кликов мышью. Управление воспроизведением также может осуществляться через отправку команд при помощи протокола MPRIS и срабатывает даже если экран заблокирован или активна другая программа.
  • В дополнение к базовой, светлой и тёмной темам оформления добавлена новая тема Alpenglow с цветными кнопками, меню и окнами.
  • Пользователям из США и Канады предоставлена возможность сохранения, управления и автозаполнения информации о кредитных картах, используемых при совершении покупок в интернет-магазинах. В других странах возможность будет активирована позднее. Для принудительного включения в about:config можно использовать настройки dom.payments.defaults.saveCreditCard, extensions.formautofill.creditCards и services.sync.engine.creditcards.
  • Для пользователей из Австрии, Бельгии и Швейцарии, использующих версию с немецкой локализацией, на странице новой вкладки добавлена секция со статьями, рекомендованными сервисом Pocket (ранее подобные рекомендации были предложены для пользователей из США, Германиии Великобритании). Связанная с подбором контента персонализация выполняется на стороне клиента и без передачи сведений о пользователе третьим лицам (в браузер загружается весь список рекомендованных ссылок на текущий день, который ранжируется на стороне пользователя, отталкиваясь от данных истории посещений). Для отключения рекомендованного Pocket контента предусмотрена настройка в конфигураторе (Firefox Home Content/Recommended by Pocket) и опция «browser.newtabpage.activity-stream.feeds.topsites» в about:config.
  • Для мобильных устройств с GPU Adreno 5xx, за исключением Adreno 505 и 506 включён движок композитинга WebRender, который написан на языке Rust и позволяет добиться существенного увеличения скорости отрисовки и снижения нагрузки на CPU за счёт выноса на сторону GPU операций отрисовки содержимого страницы, которые реализованы через выполняемые в GPU шейдеры.
  • Предложены новые пиктограммы для режима просмотра видео Картинка в Картинке (Picture-in-Picture).
  • Обеспечено автоматическое включение панели закладок с наиболее важными сайтами после импорта внешних закладок в Firefox.
  • Добавлена возможность просмотра в Firefox ранее загруженных файлов xml, svg и webp.
  • Решена проблема со сбросом языка по умолчанию на Английский после обновления браузеров с установленным языковым пакетом.
  • Для людей, имеющих проблемы со зрением, улучшена поддержка экранных ридеров и управление воспроизведением содержимого в HTML5-тегах audio/video.
  • В JavaScript-отладчике реализовано корректное определения файлов на языке TypeScript и выделение данных файлов из общего списка.
  • В отладчике предоставлена возможность остановки первого выражения в новом скрипте, что может оказаться полезным для отладки побочные эффектов при выполнении скрипта или срабатывании таймеров.
  • Обеспечен разбор и построение дерева JSON-ответов, в которых используются символы для защиты от XSSI (Cross-Site Script Inclusion), такие как «)]}'».
  • В инструментах для web-разработчиков повышена точность режима симуляции просмотра страницы людьми с отклонениями цветовосприятия, такими как дальтонизм.

Кроме новшеств и исправления ошибок в Firefox 81 устранено 10 уязвимостей, из которых 7 помечены как опасные. 6 уязвимостей (собраны под CVE-2020-15673 и CVE-2020-15674) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.

Источник: [ссылка]

Тринадцатое обновление прошивки Ubuntu Touch

Проект UBports, который взял в свои руки разработку мобильной платформы Ubuntu Touch, после того как от неё отстранилась компания Canonical, опубликовал обновление прошивки OTA-13 (over-the-air) для всех официально поддерживаемых смартфонов и планшетов, которые были укомплектованы прошивкой на базе Ubuntu. Обновление сформировано для смартфонов OnePlus One, Fairphone 2, Nexus 4, Nexus 5, Nexus 7 2013, Meizu MX4/PRO 5, VollaPhone, Bq Aquaris E5/E4.5/M10. По сравнению с прошлым выпуском началось формирование стабильных сборок для устройств Sony Xperia X/XZ и OnePlus 3/3T.

Выпуск сформирован на основе Ubuntu 16.04 (сборка OTA-3 была основана на Ubuntu 15.04, а начиная с OTA-4 осуществлён переход на Ubuntu 16.04). Проектом также развивается экспериментальный порт рабочего стола Unity 8, который переименован в Lomiri.

В новой версии:

  • Браузерный движок QtWebEngine обновлён до ветки 5.14 (ранее поставлялся выпуск 5.11), что дало возможность задействовать свежие наработки проекта Chromium в браузере Morph и web-приложениях. В тестах JetStream2 и WebAssembly benchmark производительность Morph увеличилась на 25%. Сняты ограничения на выделение только одной строки или одного слова — в буфер обмена теперь можно помещать целые абзацы и произвольные отрывки текста.

    В браузер также добавлена функция открытия загруженных картинок, PDF-документов, MP3-музыки и текстовых файлов, используя кнопку «Open» на странице «Open with».

  • В конфигураторе (System Settings) возвращено представление с пиктограммами в основном меню. Подобный интерфейс предлагался изначально, но был заменён компанией Canonical на двухстолбцовое представление настроек, незадолго до прекращения своего участия в разработке. Для больших экранов двухстолбцовый режим оставлен, но при небольшом размере окна теперь вместо списка автоматически показывается набор пиктограмм.
  • Проведена работа по адаптации компонентов Ubuntu Touch, таких как оболочка Lomiri (Unity8) и индикаторы, для работы в дистрибутивах postmarketOS и Alpine, в которых вместо GNU libc поставляется системная библиотека musl. Подготовленные изменения также улучшили общую переносимость кодовой базы и в будущем упростят переход на использование Ubuntu 20.04 в качестве основы Ubuntu Touch.
  • Изменены заставки всех базовых приложений, при запуске которых теперь показывает гармоничный индикатор вместо пустого белого экрана.
  • Расширены возможности адресной книги, в которой теперь можно сохранять сведения о днях рождения. Добавленные данные автоматически передаются в календарь и показываются в новой секции «Contact birthdays». Переработано оформление интерфейса для редактирования контактов и упрощён ввод данных в новых полях без смещения экранной клавиатуры. Предоставлена возможность удаления записи, инициирования вызова или написания сообщения при помощи жестов (при сдвиге влево появляются пиктограммы операций с записью).

    Улучшены возможности по импорту списка контактов в Ubuntu Touch через загрузку файла в формате VCF. При нажатии кнопки вызова («Call») из адресной книги, открытой внутри интерфейса для совершения звонков, вызов теперь выполняется сразу, без вывода промежуточного диалога подтверждения операции. Решены проблемы с переполнением сообщений SMS и MMS, а также с записью звука и отправкой видеосообщений.

  • Налажена работа Ubuntu Touch в сетях, использующих только IPv6.
  • На смартфоне OnePlus One реализовано корректное определение начального состояния датчика приближения, а также обеспечено включение экрана при подключении или отключении зарядки и запрещено отключение экрана во время начала вызова.
  • Добавлена поддержка перевода устройств Nexus 7 2013, Xperia X и OnePlus One в спящий режим при закрытии магнитного чехла и активации при открытии чехла.
  • Расширено число устройств, таких как Nexus 6P, с поддержкой кнопки включения фонарика в индикаторе управления питанием.
  • В пакете lomiri-ui-toolkit улучшена поддержка тем оформления интерфейса Qt и наборов пиктограмм.
  • Ускорено возобновление работы нагруженных приложений за счёт запуска процесса возобновления в асинхронном режиме, не блокирующем оболочку Lomiri.

Источник: [ссылка]

Компания Mozilla отправила проект WebThing в свободное плаванье

Разработчики Mozilla WebThings, платформы для потребительских интернет-устройств, сообщили об отделении от компании Mozilla и превращении в независимый открытый проект. Платформа также переименована и вместо Mozilla WebThings теперь именуется просто WebThings и распространяется через новый сайт webthings.io. Причиной предпринятых действий стало сокращение прямых инвестиции компании Mozilla в проект и передача связанных с ним наработок сообществу. Проект останется на плаву, но теперь будет независим от компании Mozilla, не сможет использовать инфраструктуру Mozilla и лишится права использовать торговые марки Mozilla.

Представленные изменения не скажутся на работе уже развёрнутых локально управляемых домашних шлюзов на базе WebThings, которые самодостаточны и не привязаны к облачным сервисам или внешней инфраструктуре. Тем не менее, обновления теперь будут распространяться через инфраструктуру, поддерживаемую сообществом, а не компанией Mozilla, что потребует внесения изменения в настройки. Сервис для организации туннелей к домашним шлюзам, использующий поддомены *.mozilla-iot.org, продолжит работать до 31 декабря 2020 года. До прекращения работы сервиса планируется ввести в строй замену на основе домена webthings.io, для перехода на которую потребуется перерегистрация.

Напомним, что платформа WebThings состоит из шлюза WebThings Gateway и библиотеки WebThings Framework. Код проекта написан на языке JavaScript с использованием серверной платформы Node.js и распространяется под лицензией MPL 2.0. На базе OpenWrt развивается готовый дистрибутив с интегрированной поддержкой WebThings Gateway, предоставляющий унифицированный интерфейс для настройки умного дома и беспроводной точки доступа.

WebThings Gateway представляет собой универсальную прослойку для организации доступа к различным категориям потребительских и IoT-устройств, скрывающую за собой особенности каждой платформы и не требующую использования специфичных для каждого производителя приложений. Для взаимодействия шлюза с IoT-платформами можно использовать протоколы ZigBee и ZWave, WiFi или прямое подключение через GPIO. Шлюз можно установить на плату Raspberry Pi и получить систему управления умным домом, объединяющую все имеющиеся в доме IoT-устройства и предоставляющую средства для мониторинга и управления ими через Web-интерфейс.

Платформа также позволяет создавать дополнительные web-приложения, которые могут взаимодействовать с устройствами через Web Thing API. Таким образом, вместо установки своего мобильного приложения для каждого типа IoT-устройств, можно использовать единый унифицированный web-интерфейс. Для установки WebThings Gateway достаточно загрузить предоставленную прошивку на SD-карту, открыть в браузере хост «gateway.local», настроить подключение к WiFi, ZigBee или ZWave, найти имеющиеся IoT-устройства, настроить параметры для доступа извне и добавить самые востребованные устройства на домашний экран.

Шлюз поддерживает такие функции, как определение устройств в локальной сети, выбор web-адреса для соединения с устройствами из интернета, создание учётных записей для доступа к web-интерфейсу шлюза, подключение к шлюзу устройств, поддерживающих проприетарные протоколы ZigBee и Z-Wave, удалённое включение и выключение устройств из web-приложения, удалённый мониторинг за состоянием дома и видеонаблюдение.

WebThings Framework предоставляет набор заменяемых компонентов для создания IoT-устройств, которые могут напрямую взаимодействовать c использованием Web Things API. Подобные устройства могут автоматически определяться шлюзами на базе WebThings Gateway или клиентским ПО (используется mDNS) для последующего мониторинга и управления через Web. Реализации серверов для Web Things API подготовлены в форме библиотек на Python, Java, Rust, Arduino и MicroPython.

Источник: [ссылка]