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, теперь ваш ход.

[nginx] The following signatures were invalid

На Debian 11 (Bullseye) при обновлении списка пакетов через apt-get update получаем ошибку:

Err:6 http://nginx.org/packages/debian bullseye InRelease
The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key <signing-key@nginx.com>

Решение – загружаем новый ключ:

curl -O https://nginx.org/keys/nginx_signing.key && apt-key add ./nginx_signing.key

Приобрел домашний проектор

В небольшой по размеру спальне имелась ничем не занятая стена. Планировал повесить телевизор, но его нужно вешать на кронштейн, что вместе с самим телевизором дает довольно большую «выпуклость» от стены. Из-за небольшого прохода от края кровати до стены ходить вдоль нее в этом случае не совсем комфортно. Решил присмотреться к проекторам, ведь стена-то белая, а это то, что нужно для комфортного просмотра.

После изучения вариантов был составлен следующий список:

1. Wemax Go Advanced
2. Nebula Capsule 3
3. XGIMI Halo+
4. XGIMI Elfin
5. XGIMI MoGo 2 Pro
6. FORMOVIE Fengmi S5
7. FORMOVIE Xming Page One

Nebula Capsule 3 и FORMOVIE Fengmi S5 — лазерные проекторы, что дает лучшую картинку. Но на момент выбора Capsule 3 еще особо не продавалась (как и Xming Page One), а на Fengmi S5 были жалобы, что быстро перегревается. Из проверенных временем — XGIMI Elfin, но там внешний блок питания — для меня большой минус.

Остановился на XGIMI MoGo 2 Pro — модель 2023 года, с неплохими характеристиками, и с Android TV. Почему это важно? Потому что можно ставить приложения сразу через Google Play. Проекторы FORMOVIE, например, работают на Android со своим лончером, адаптированным под китайский рынок.

XGIMI MoGo 2 Pro

Из плюсов выделю — небольшие размеры (легко перенести на новое место), хороший стерео звук (с басами), автокоррекция трапецевидных искажений (актуально, ели проектор стоит под углом к стене, как у меня). Из минусов — качество изображения и шум от встроенного вентилятора при работе (вентилятор нужен, чтобы охлаждать устройство, т.к. лампа дает ощутимый нагрев). Если смотреть фильм, то на шум не обращаешь внимания, он тонет в звуках. Но если сидеть в тишине, то да, слышно отчетливо. Это мой первый проектор и возможно они все плюс-минус шумят одинаково, просто не с чем до этого было сравнивать. Это относится и к картинке — изображение, проектируемое на стене, вблизи имеет ярко выраженные RGB пиксели (вдали, конечно, глаз этого не замечает).

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

Считать ли покупку удачной — скорее да, чем нет, но что точно понял, так то, что выбор проектора по отзывам / картинкам в Интернете является не лучшим вариантом.

Про ортодонтию, брекеты и синус-лифтинг

В начальном школьном возрасте стал частым посетителем местной зубной поликлиники (естественно, государственной, ибо в те времена частные если и были, то одна-две на весь город). Причина — неправильный прикус и соответственно, процесс его исправления.

В моем случае, дали носить ортодонтическую пластинку, при чем сняли мне ее только, когда уже заканчивал школу. Хотя сейчас вот читаю и вижу — «Пластинки для зубов обычно устанавливают детям в возрасте от 9 до 12 лет.». Даже не знаю, почему в моем случае тянули с ней до 16 лет, а не заменили на брекеты или что-то другое. Возможно, прикус уже был нормальным и в брекетах необходимости так таковой не было. Однако, после окончания лечения нижние центральные резцы оставались немного вогнуты во внутрь. На вопрос, а что с этим делать, получил ответ — «Да, зубки чуть поехали, но не страшно…». В то время мне больше всего хотелось закрыть ортодонтическую тему, и получив такой странноватый ответ, радостный покинул поликлиник. К слову, больше в нее я уже никогда не возвращался.

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

И вот в 35 лет решил пойти на консультацию в ортодонту с вопросом — «Доктор, есть что улучшать?» Провели диагностику, снимки и да — прикус неправильный (опять!), нужно ставить брекеты и исправлять ситуацию. И да, возраст для исправления прикуса не важен, так что брекеты — это не только про подростковый возраст.

Внутриротовые фото
В 35 годам зубы все равно поехали

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

Потом сказали, что на место удаленного зуба нужно поставить имплант, ибо без зуба завершить лечение не получится — после снятия брекетов зубы вновь «поедут». Правда, от удаления зуба и до того, как врачи сказали «пора делать имплантацию» прошел почти год, после которого выяснилось, что костной ткани для импланта катастрофически уже не хватает — было всего 3 мм, хотя минимально допустимое считается 4-5 мм (это в случае установки мини-имплантов). Дело в том, что при отсутствии зуба кость естественным образом уменьшается, поэтому имплантацию по-хорошему проводят через несколько неделей после удаления (а некоторые еще практикуют установку сразу).

Синус-лифтинг
На снимке — отсутствие «шестерки», костная ткань — 3 мм

Направили меня на открытый синус-лифтинг — процедура прошла быстро и без последствий. Хирург выглядел счастливо, когда тест с резким выдыханием с закрытым носом ни к чему такого не привели. «А что могло быть?» — спросил я. «Ну, иногда бывает, что рвется мембрана гайморовой пазухе и тогда приходится вначале решать уже эту проблему.» (ого-го!)

После синус-лифтинга нужно ждать 4-5 месяцев, пока кость не нараститься (сейчас я на этом этапе). Дальше будут ставить уже сам имплант (винт), после него ждать еще полгода, пока он срастется с костью, потом ставим на имплант коронку и вот зуб готов. Ну а после — снимать брекеты, и на этом ортодонтическое лечение будет завершено. Дальше уже решать проблему рецессии десны.

Vehicle Motion Cues

Apple рассказала о новых фишках, которые появятся в этом году (с выходом iOS 18), направленных для помощи людям с ограниченными возможностями — трекинг глаз, распознавание «нетипичной» речи и пр.

Но меня лично заинтересовала функция Vehicle Motion Cues — помощь тем, кого укачивает (например, в машине), так как я этим тоже страдаю.

Из описания Vehicle Motion Cues:

Исследования показывают, что укачивание обычно вызывается сенсорным конфликтом между тем, что человек видит и тем, что он чувствует, что может помешать некоторым пользователям комфортно использовать iPhone или iPad во время езды в движущемся транспортном средстве.

Используя датчики, встроенные в iPhone и iPad, Vehicle Motion Cues распознает, когда пользователь находится в движущемся транспортном средстве, и выводит анимированные точки по краям экрана, меняющие свое направление в противоположную сторону от движения автомобиля, что помогает уменьшить сенсорный конфликт,.

Эту функцию можно настроить на автоматическое отображение на iPhone или включить и выключить в Центре управления.

А вот как это должно будет выглядеть — автомобиль поворачивает вправо, точки начинают по экрану перемещаться влево. Когда машина ускоряется, то точки движутся назад.

Vehicle Motion Cues

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

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

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

Замена аккумуляторов на Google Pixel и iPhone XS

В 2017 году приобрел тогда еще самый первый Google Pixel, и работал он верой и правдой, пока не перешел в 2020 на iPhone XS, но сам гуглфон продолжал использовать по рабочим делам. Через какое-то время аппарат стал быстро разряжаться (хватало лишь на пару часов), а вся система вести себя крайне тормознуто.

Нашел поблизости от себя мастерскую по ремонту, но там заявили, что аккумулятора для Google Pixel у них нет, т.к. модель очень старая и предложили купить его самому. Такой аккумулятор есть на Aliexpress (емкость 2770 мА·ч), но еще обнаружился и на Яндекс.Маркете, где его и приобрел за 750 руб. Сдал телефон с аккумулятором в ремонт, через пару дней получил обратно. По стоимости обошлось в 2800 руб. Теперь телефон разряжается не так быстро, но все равно при активном использовании проценты заряда уменьшаются на глазах. Возможно, что новый аккумулятор еще не «прокачался».

Затем решил провести замену аккумулятора и на iPhone XS — там износ аккумулятора по официальным данным составлял 86%, а через стороннюю команду «Battety Stats» даже 84%:

Your iPhone battery’s real stats:
MaximumFCC (original maximum capacity): 2716 mAh
NominalChargeCapacity (current maximum capacity): 2288 mAh
CycleCount (number of complete charge cycles): 256 cycles
Relative to when it was new, your battery capacity is 84,24%.

Заменил в iPort по промокоду BONUS за 4590 3590 руб. Аккумулятор хоть не оригинальный (навряд ли уже есть), но такой же емкости. И вот тут уже заряд держится хорошо.

[macOS] Увеличить размер шифрованного dmg-образа

Если нужно зашифровать какую-то директорию, то для этого в macOS можно использовать манипуляцию с образами — через Disk Utility выбираем создание нового образа «из папки». На этом же этапе можно выбрать опцию и шифрования. В дальнейшем, образ можно монтировать, когда есть в этом потребность.

Правда, обнаружил нюанс — образ создается с фиксированным размером, и при попытке что-то в него положить новое, приводит к ошибке о нехватке места. Ок, через Disk Utility можно также сделать Resize, но у меня эта попытка каждый раз выдавала ошибку.

А вот изменение размера через консоль сработало (в примере — до 800 МБ):

hdiutil resize -size 800m <путь до образа>