Android Studio Ladybug 2024.2.1

Недавно вышла тут новая версия Android Studio под названием «Божья коровка» (версия 2024.2.1). Обновился. Начинаю собирать один из проектов и выходит ошибка:

Execution failed for task ':common:kaptGenerateStubsDebugKotlin'.
> Error while evaluating property 'compilerOptions.jvmTarget' of task ':common:kaptGenerateStubsDebugKotlin'.
> Failed to calculate the value of property 'jvmTarget'.
> Unknown Kotlin JVM target: 21

А дело в том, что Kotlin 1.9 совместим только с Java 17, а Android Studio Ladybug идет уже с Java 21. Тот случай, когда IDE для Android убегает намного вперед, чем текущие актуальные средства разработки.

В другом проекте на React Native также возникла проблема со сборкой, на этапе выполнения задачи «createBundleGoogleDebugJsAndAssets»:

> Task :app:createBundleGoogleDebugJsAndAssets FAILED
Execution failed for task ':app:createBundleGoogleDebugJsAndAssets'.
> A problem occurred starting process 'command 'node''

Откат на предыдущую версию Android Studio (до Koala Feature Drop), естественно, решило все проблемы.

[macOS] Удаление Microsoft AutoUpdate

Вместе с Microsoft Office поставляется также утилита AutoUpdate, которая следит за актуальностью установленных приложений. Чтобы полностью удалить AutoUpdate, нужно:

1. Открыть /Library/Application Support/Microsoft/ и удалить папки «MAU» или «MAU2»
2. Удалить plist-файлы, относящиеся к Microsoft AutoUpdate, в /Library/LaunchDaemons в /Library/LaunchAgents

Телевизоры на Tizen теперь смогу получать мажорные обновления

Коллеги из Samsung сообщили донесли приятную новость – изменяется принцип обновлений операционной системы Tizen на устройствах Smart TV. Новый процесс предполагает ежегодное обновление интерфейса до самой последней версии Tizen.

Основной смысл изменений: с выпуском каждого нового модельного года его обновленная операционная система появится на Smart TV устройствах предыдущих годов выпуска, в том числе на тех устройствах, которые уже проданы. В этом случае у пользователей появится соответствующее уведомление с предложением обновить устройство до актуальной версии ОС (как это происходит на мобильных устройствах).

Под обновления попадут устройства, начиная 2023 года. Так, если у вас устройство на Tizen 7.0, то оно будет обновлено до Tizen 8.0. Модели 2022 года получат лишь обновление интерфейса из Tizen 8.0.

Ожидаемая дата начала обновлений – 14 сентября 2024 г.

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

LG, теперь ваш ход.

Загрузка HLS / MPEG-DASH потоков через ffmpeg

Чтобы скачать с какого-то ресурса видепоток в формате HLS (манифест m3u8) или MPEG-DASH (манифест mpd) и сохранить, например, в MP4, то:

ffmpeg -i "<ссылка на видео>" -c copy <результирующий файл>.mp4

Конвертирование аудио через ffmpeg

Конвертирование всех аудио-файлов в директории, например, из ogg в формат aac:

find <директория> -type f -name "*.ogg" -exec ffmpeg -i {} -c:a aac -strict experimental -b:a 256k {}.aac \;

где -b:a 256k — значение битрейта

А если нужно в mp3 с максимальным качеством, то:

find <директория> -type f -name "*.aac" -exec ffmpeg -i {} -c:a libmp3lame -q:a 0 {}.mp3 \;

где -q:a 0 — значение качества от 0 до 9 (0 — самое высокое)

[macOS] Xcode — Unable to boot the Simulator

Столкнулся с тем, что при попытке запуска симулятора возникает ошибка «Unable to boot the Simulator».

Решение, которое помогло — удаление кеша:

sudo rm -R ~/Library/Developer/CoreSimulator/Caches

Склейка видео / изменение громкости через ffmpeg

Имеется камера, пишет на SD-карту видеопоток, который представляет собой «куски» в формате MP4 по 1 минуте. Чтобы объединить их в одно итоговое видео, можно сделать так:

ffmpeg -f concat -safe 0 -i <(for f in /*.mp4; do echo "file '$f'"; done) -c copy output.mp4

Если нужно увеличить громкость аудио (например, на +20dB) и изменить битрейт, то:

ffmpeg -i input.mp4 -af "volume=20dB" -c:v copy -c:a aac -b:a 320k output.mp4

А так можно избавиться от шумов в аудио (но работает не всегда так, как ожидается — могут быть потеряны участки, где в этот момент, например, «щелчки»):

ffmpeg -i input.mp4 -af "afftdn=nr=10:nf=-30:tn=1" output.mp4

Так можно извлечь аудио (в примере — формат aac) из видео:

ffmpeg -i input.mp4 -c:a copy output.aac

Удалить аудио из видео:

ffmpeg -i input.mp4 -c:v copy -an output.mp4

Объединить видео с аудио:

ffmpeg -i input.mp4 -i input.aac -c copy output.mp4

Улучшить видео через шумоподавитель на основе вейвлетов:

ffmpeg -i input.mp4 -vf vaguedenoiser=method=1:threshold=4 output.mp4

Узнать уровень износа SSD в Apple MacBook

Узнать уровень износа диска SSD в Apple MacBook можно с помощью утилиты Smartmontools.

Устанавливаем:

brew install smartmontools

Вызываем:

sudo smartctl /dev/disk0 -a

Строка Percentage Used покажет уровень износа от заявленного уровня записи производителем (в примере ниже — 4% для ноутбука 2019 года).

sudo smartctl /dev/disk0 -a
Password:
smartctl 7.4 2023-08-01 r5530 [Darwin 23.2.0 x86_64] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number: APPLE SSD AP0512M
Serial Number: xxxxxxxxx
Firmware Version: 1306
PCI Vendor/Subsystem ID: 0x106b
IEEE OUI Identifier: 0x000000
Controller ID: 0
NVMe Version: <1.2
Number of Namespaces: 1
Local Time is: Sat Dec 23 17:30:28 2023 MSK
Firmware Updates (0x02): 1 Slot
Optional Admin Commands (0x0004): Frmw_DL
Optional NVM Commands (0x0004): DS_Mngmt
Maximum Data Transfer Size: 256 Pages

Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 0.00W — — 0 0 0 0 0 0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 35 Celsius
Available Spare: 100%
Available Spare Threshold: 99%
Percentage Used: 4%
Data Units Read: 129,247,158 [66.1 TB]
Data Units Written: 105,425,136 [53.9 TB]
Host Read Commands: 1,470,940,608
Host Write Commands: 818,122,034
Controller Busy Time: 0
Power Cycles: 125
Power On Hours: 849
Unsafe Shutdowns: 17
Media and Data Integrity Errors: 0
Error Information Log Entries: 0

Read 1 entries from Error Information Log failed: GetLogPage failed: system=0x38, sub=0x0, code=745

Просмотр собираемой телеметрии в Firefox

В браузере Firefox в разделе «Настроек» можно управлять отправкой сведений об использовании браузера в Mozzila (раздел «Firefox Data Collection and Use»). Большинство из них затем передаются рекламным агентствам, сервисам веб-аналитики (типо SimilarWeb) и пр.

И если вам интересно, что за данные собираются, то найти их можно на странице about:telemetry.

Опенсорсные альтернативы Google Analytics / Яндекс.Метрика

Matomo (PHP+MySQL) (ранее известный как Piwik) представляет почти все то, что можно встретить в Google Analytics. Это и показатели количества посетителей, заходящих на сайт, данные о том, откуда они приходят (как в Интернете, так и географически), страницы, с которых они покидают, а также возможность отслеживать переходы из поисковых систем. Предлагается множество отчетов, с настраиваемой панелью мониторинга для просмотра показателей.

Open Web Analytics (PHP+MySQL) не отстает от Matomo в сфере веб-аналитики с открытым исходным кодом. Он также включает в себя ключевые функции Google Analytics. В дополнение к обычному множеству функций аналитики и отчетности, Open Web Analytics отслеживает, где на странице и на какие элементы кликают посетители; предоставляет тепловые карты и отслеживает электронную торговлю.

Plausible (разворачивается через Docker-контейнер) — новичок среди инструментов аналитики с открытым исходным кодом. Компактный, быстрый и собирает лишь небольшой объем информации, включая количество уникальных посетителей и популярные посещенные страницы, количество просмотров страниц, показатель отказов и рефереры. Что отличает Plausible от конкурентов, так это большое внимание к конфиденциальности. Создатели проекта заявляют, что инструмент не собирает и не хранит никакой информации о посетителях вашего сайта, что особенно привлекательно, если для вас важна конфиденциальность.