Конвертирование аудио через 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 — самое высокое)

[macOS] Xcode — Unable to boot the Simulator

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

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

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

Склейка видео / изменение громкости через 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

Просмотр собираемой телеметрии в 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 от конкурентов, так это большое внимание к конфиденциальности. Создатели проекта заявляют, что инструмент не собирает и не хранит никакой информации о посетителях вашего сайта, что особенно привлекательно, если для вас важна конфиденциальность.

Выбить Zoom из головы

Zoom, как сервис для проведения видео-звонков и конференций, стал наиболее популярен в период пандемии COVID-19. Тогда большинству работников пришлось уйти на удаленный формат работы, а продолжать коммуницировать с коллегами как-то нужно было. Хотя альтернатив «зуму» на тот момент уже было предостаточно — тот же Skype (с моей любимой функцией автоперевода) или Google Hangouts / Meet.

На волне успеха «зума» начали подтягиваться и российские решения, такие как Видеозвонки ВКонтакте или Sber Jazz. Более подробный альтернатив от российских разработчиков можно посмотреть, например, тут.

А тем временем сам Zoom еще в апреле 2021 года ограничил доступ для российских госкомпаний / госучреждений, а в 2022 — отключил уже оплаченные аккаунты российских вузов, тем самым показав свою ненадежность (но в виду санкционного давления это и так было понятно).

Учитывая большой выбор аналогичных решений у нас, казалось, что в 2022 году пользователи из РФ начнут массово отказываться от «зума», но нет — большая часть все еще упорно продолжает им пользоваться.

Пару примеров из личного опыта:

  1. Собеседование с сотрудницей из Okko (актив Сбера) — сразу предложила созвон в «зуме». А почему не через Sber Jazz? (на минуточку, решение ваших же коллег). Видимо, девочкам из HR просто «так привычно», а все остальное неважно.
  2. Митинг с коллегами из другого IT-отдела — и опять Zoom ( :faceplam:)

Вот уж действительно выбить Zoom из головы, как оказалось, не так и просто.

[Chrome] Проверка элементов, требующих фокус

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

С проверкой таких элементов через инспектор Chrome возникают проблемы, ведь как только вы убираете фокус с такого элемента, чтобы его исследовать на панели Elements, то элемент исчезает и из DOM. Использование F8 для приостановки отладчика также приводит к потери фокуса до того, как он был приостановлен.

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

setTimeout(function() {
debugger;
}, 3000);

Активация JetBrains WebStorm

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

Например, в прошлом году была куплена лицензия на WebStorm, когда актуальной была версия 2021.2. Соответственно, работать можно будет только с этой версией, все новые будут требовать продления лицензии.

Если все же хочется работать с актуальной версией, то идем сюда (для macOS сделать xattr -cr /Applications/WebStorm.app), либо сюда.

Как в Chrome 107 включить экономию памяти (Memory Saver)

В недавнем релизе браузера Google Chrome 107 были добавлены два новых режима оптимизации работы — экономия памяти (Memory Saver) и экономия энергии (Energy Saver).

Данные режимы пока доступны только на платформах ChromeOS, Windows и macOS и включаются через флаги (chrome://flags) по названию «efficiency mode»:

После выбора Enabled и перезапуска браузера уже непосредственно в настройках браузера (chrome://settings/) появится раздел Performance, в котором можно включить «Memory Saver».

Теперь, если открыть какую-либо вкладку и оставить ее неиспользуемой в течение некоторого времени, функция экономии памяти активируется автоматически (об этом будет сигнализировать иконка в адресной строке). Иконка указывает на то, что режим «Memory Saver» работает и что теперь неактивные вкладки будут продолжать переводиться в спящий режим.

При взаимодействии с неактивной вкладкой иконка изменится на индикатор «Tab active again».