Замена аккумуляторов на 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 <путь до образа>

Конвертирование аудио через 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 /Users/bulkinav/Desktop/music -type f -name "*.aac" -exec ffmpeg -i {} -c:a libmp3lame -q:a 0 {}.mp3 \;

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

Вступительная музыка из фигурного катания на Первом канале

В сезоне 2023/2024 при выходе на лед участников соревнований по фигурному катанию, которые транслирует Первый канал, стало звучать динамичное музыкальное сопровождение, сразу понравившееся многим (в том числе спортсменам).

Вначале подумал, что это специально написаная композиция по заказу Первого канала, но оказалось все проще — Shazam подсказал, что это John Matthews — BoomBox Jazz, и в Apple Music такого нет, но есть тут и компиляция на YouTube:

Как указано в описании, композиция «доступна в свободном доступе для использования во всех телевизионных, видео, рекламных и игровых проектах и трансляциях», чем Первый канал и воспользовался.

[macOS] Xcode — Unable to boot the Simulator

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

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

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

Чтение больших файлов из архива

Есть RAR-архив с паролем, в нем текстовый файл размером ~4 ГБ, который после распаковки занимает ~120 ГБ.

Задача — посмотреть, что находится в файле, хотя бы какую-то часть данных (например, первые 100 строк).

Используем утилиту unar для распаковки:

unar e p<ПАРОЛЬ> <название архива>.rar <название файла в архиве>.txt> <имя файла для распаковки>.txt

В итоге на выходе получаем распакованный txt-файл. Открыть его «блокнотом» или чем-то похожем не получится — не хватит оперативной памяти. Поэтому вытащим только определенные строки:

head -n <число строк> <исходный файл>.txt > <результирующий файл>.txt

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

А узнать, сколько вообще строк в файле, можно так:

wc -l файл.txt

Вызов

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

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

Конечно, не стоит забывать о факторе сезонности. Одно дело показывать фильм в период школьных каникул, другое — в мае, когда все разъезжаются по дачам. И тут вопросы к продюсером — могли же «Вызов» поставить и на Новый год 2023, но, видимо, был политический фактор, ведь на День космонавтики фильм презентовали аж самому президенту.

В общем, имеем то, что первый в мире фильм, снятый в космосе, показ кассу хуже, чем сказка про Емелю-дурочка.

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

Имеется камера, пишет на SD-карту видеопоток, который представляет собой «куски» по 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

Pixel Repair Mode

Google анонсировала новый Pixel Repair Mode — режим, который призван помочь защитить конфиденциальность и предотвратить доступ ко всем данным, которые находятся на устройстве во время того, как вы его сдали в ремонт (актуально для устройств Pixel).

Так что теперь нет необходимости, например, предварительно делать резервное копирование, удалять и восстанавливать потом данных.

Достаточно включить Pixel Repair Mode (находится в Настройки -> Система -> Режим ремонта), чтобы защитить личные данные перед ремонтом, а затем выключить этот режим, когда устройство будет вам возвращено.

В дополнение теперь можно запустить приложение Pixel Diagnostic App через команду *#*#7287#*#*, чтобы проверить устройство на наличие проблем до и после ремонта. После ремонта вы сможете легко проверить, правильно ли работает ваш телефон.