Александр Токарев: софт
16 заметок с тегом

софт

Эгея и WebP

В комментах к недавнему посту про сжатие картинок в JPG зашёл разговор о формате-конкуренте — WebP производства Google. Поскольку для меня это формат новый, неизведанный, да к тому же вот коллега-эгеец сетует, что на Эгее WebP не поддерживается и не известно, будет ли, я решил побольше разузнать о всей этой ситуации.

Почитал сеть, поэкспериментировал с Эгеей, делюсь результатами изысканий и размышлений.

WebP жмёт мощнее, чем JPEG

В моём тестировании одна и та же картинка в JPEG весила 700 килобайт, а в WebP — 600 килобайт. Экономия в 15-20%, может, и не космическая, но когда картинок на странице несколько — очень даже заметная: и по скорости загрузки, и по стоимости трафика (второе актуально, если вы — СМИ или медиапортал, к вам ходят сотни тысяч посетителей и вы платите за объём отдаваемого трафика).

WebP не особенно парится о качестве и прочих нюансах

Вот что говорит Корнел Лесиньски, один из разработчиков MozJPEG, отвечая на вопрос, не планируется ли добавить поддержку WebP в программу-компрессор ImageOptim:

«Таких планов нет... Сам этот формат не особенно интересен: менее точное цветовое соответствие, чем у JPEG; не особенно заметная выгода в сжатии по сравнению с оптимизированным JPEG в приемлемом диапазоне качества; нет поддержки прогрессивного (progressive) отображения». (Отсюда.)

Тем не менее, все основные браузеры уже поддерживают формат WebP. Интересно, почему?

WebP не поддерживается Safari

В это одновременно трудно и (зная политику Apple в отношении просьб пользователей) просто поверить. Самое забавное: WebP является абсолютно бесплатным программным продуктом с открытым кодом. То есть, за добавление его поддержки в браузер Safari фирме Apple не пришлось бы заплатить ни цента. Почему же Apple этого не делает? Возможно, вопрос не в том, сколько Apple должна заплатить Google за добавление поддержки WebP в свой браузер, а в том, сколько ребята из Google должны занести в Apple, чтобы эта поддержка там, наконец, появилась.

Что ж, подождём: рынок расставит всё по своим местам. А пока упрямцы из Apple держат бессмысленную оборону, коммерческие сайтостроители не теряют времени и уже сейчас делают две версии картинок: одну, основную, в формате WebP (её видят пользователи всех браузеров, в которых этот формат поддерживается), а другую, резервную, в формате JPG (её видят гордые пользователи Safari). Подумайте: если бы эта возня была невыгодна с финансовой точки зрения, разве они этим занимались бы?

Почему WebP победит

Я склонен думать, что WebP имеет все шансы вытеснить JPG в качестве стандартного формата сохранения фотоизображений для веба. По двум причинам:

• Во-первых, этот формат уже вовсю используется. И отнюдь не одиночками-энтузиастами, а очень крупными и очень зубастыми коммерческими игроками, не привыкшими кидать деньги на ветер. Среди них — социальные сети, медиахолдинги, инфопорталы, интернет-СМИ. Почему они переходят на WebP? Может, потому что картинки в нём красивее выглядят? Неа. Потому что картинки в нём меньше весят. Точка.

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

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

Как добавить поддержку WebP в Adobe Photoshop?

Элементарно, легально и бесплатно: соответствующий плагин под названием WebPShop, написанный самим Google, давным-давно проживает тут. Для неанглоязычных пользователей перевожу инструкцию и выкладываю файлы с Гитхаба:

Установка WebPShop для Windows:

• Скачайте архив с плагином (вот для Windows x64 а вот для Windows x86) и распакуйте его.
• Скопируйте файл WebPShop.8bi в папку с плагинами Photoshop (обычно это C:\Program Files\Adobe\Adobe Photoshop\Plug-ins).
• Перезапустите Photoshop. В пунктах меню «Открыть» и «Сохранить» теперь должны отображаться файлы в формате WebP.

Установка WebPShop для macOS:

• Скачайте архив с плагином для macOS и распакуйте его.
• Скопируйте файл WebPShop.plugin в папку с плагинами Photoshop (обычно это Applications/Adobe Photoshop/Plug-ins).
• Перезапустите Photoshop. В пунктах меню «Открыть» и «Сохранить» теперь должны отображаться файлы в формате WebP.

Внимание пользователей macOS Catalina! Если после установки плагина выскочит окошко с системными ругательствами (“WebPShop.plugin” cannot be opened because the developer cannot be verified), запустите Терминал и выполните команду:

sudo xattr -r -d com.apple.quarantine /Applications/Adobe\ Photoshop\ 2020/Plug-ins/WebPShop.plugin

Вышеприведённая команда предназначена для Adobe Photoshop 2020. Если вы используете другую версию Фотошопа или папка с плагинами лежит в другом месте, скорректируйте путь.

Сохранение в WebP в Photoshop производится через меню «Save» (Сохранить). Экспорт «Save for Web (Legacy)» не поддерживается.

WebP и Эгея

По состоянию на ноябрь 2019, движок Эгеи не поддерживает работу с WebP. Это означает, что картинки в этом формате нельзя загрузить в окно редактора. Но это не означает, что картинки в формате WebP вообще нельзя использовать в блоге, работающем на Эгее. Ещё как можно! Вот, смотрите:

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

Как это сделано? С помощью всего-навсего трёх тегов:

<picture>
    <source srcset="/pictures/test@2x.webp" type="image/webp">
    <img src="/pictures/test@2x.jpg" style="width:100%">
</picture>

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

Здорово? Конечно! Однако неудобство заключается в том, что во-первых, вам придётся использовать FTP-менеджер для копирования WebP-файлов на ваш сервер (поскольку через эгеевский редактор этого сделать нельзя), а во-вторых, ширину картинки для корректного адаптивного масштабирования придётся ограничить шириной текста, т. е. около 740 пикселов, иначе картинка при масштабировании не будет умещаться в экран.

А что насчёт анимированного WebP?

В самом деле, ведь WebP поддерживает ещё и анимацию! Давайте-ка глянем, что он собой представляет в этом качестве и стоит ли использовать его вместо анимированных GIF, как на этом настаивает Google. (Если ролики с WebP-анимацией в вашем браузере вообще не видны, установите последнюю версию браузера.)

Вот 3-секундный тестовый видеофрагмент из тизера «IMAX® Titans Of The Ice Age» (контейнер mp4, кодек H.264, 10 кадров в секунду, размер файла 276 килобайт):

А вот результаты его кодирования с помощью плагина WebPShop:


Качество 50 (размер файла 812 килобайт)



Качество 70 (размер файла 1,1 мегабайт)



Качество 90 (размер файла 2,4 мегабайт)

Нетрудно заметить, что кодирование видео с качеством ниже 90 даёт заметные артефакты-клеточки на фоне однородной цветовой заливки (неба); при этом размер файла возрастает в геометрической прогрессии аж до 2,4 мегабайт, при том что исходный .mp4 имеет размер всего 276 кб!

Так что не очень понимаю, что имел в виду Google, рекомендуя WebP для замены анимированных GIF. Возможно, мультяшно-векторная анимация ему удаётся лучше, но для кодирования анимированных фотоизображений я бы вряд ли рекомендовал WebP. С этим гораздо лучше справляется его друг и соратник WebM.

Итого

Нужно ли добавить поддержку WebP в Эгею? Если спросите меня, я отвечу: «Разумеется, ведь это позволит сайтам на Эгее работать быстрее!» Большинство браузеров этот формат давно поддерживают. Так что главное — захотеть, правда?

29 ноября   софт   Эгея

Сжатие в JPG: Photoshop, MozJPEG, Guetzli

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

Поэтому я решил закатать рукава и самостоятельно проверить, насколько велика разница по качеству JPG-сжатия между различными компрессорами, чтобы на основании личного опыта решить, стоит ли вообще игра свеч.

В качестве исходника я взял одну фотографию. Вот эту, про запрет купаться в листьях:

Технически это фото не особенно высокого качества: чуть занижен ISO, вблизи заметна небольшая «шевелёнка», поскольку снято на ходу без штатива. Но для теста оно годится как нельзя лучше, ведь на нём одновременно присутствуют разнообразные зоны — как мелкие, пёстрые текстуры (листва, трава, кора дерева), так и большие однородные цветовые пятна (инфо-щит), а также «проблемные зоны» — тонкие линии и контрастный текст, которые при сжатии в JPG обычно страдают сильнее всего.

Участники соревнований

Эту исходную фотку, сконвертированную из RAW в PNG без компресии, я сжал с помощью трёх разных программ:


1. Adobe Photoshop 2020, опция Save for Web (Legacy). Этот участник в представлении не нуждается: что такое Фотошоп, сегодня знают, наверное, и дошкольники. Программа, естественно, платная (около 500 р/мес.)

2. MozJPEG v 3.11. Это один из проектов корпорации Mozilla — тех самых ребят, которые дали миру браузер Firefox и почтовый клиент Thunderbird (его я, к слову, очень рекомендую в качестве замены Outlook).

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

На мой взгляд, отсутствие готовых исполнимых файлов у бесплатных программ с открытым кодом — чудовищная глупость со стороны разработчиков, если, конечно, они заинтересованы, чтобы их программа была сколько-нибудь популярна. Как по-вашему, какое число пользователей умеет компилировать бинарники из исходного кода? По моим прикидкам, около 1%, если не меньше. (Полагаю, это примерно те же люди, кто умеет ставить root-права на свой телефон.) Остальные 99% просто скачают программу-конкурент, пусть платную, лишь бы не париться с этим чёртовым компилированием.

3. Guetzli, проект корпорации Google. Чувствуете, как сразу запахло несметными деньжищами и нейросетями? Однако спокойствие: этот компрессор бесплатный (спойлер: и правильно). Guetzli (произносится «гюцли») — это такие немецко-швейцарские печеньки из песочного теста. По названию можно предположить, что разработчики Guetzli сильно охочи до сладкого. А может, всё дело в том, что они находятся в Цюрихе.

Почему я не использовал для теста онлайн-компрессоры

Разумеется, можно плюнуть на все эти сложности с самостоятельной компиляцией и воспользоваться одним из бесплатных онлайн-компрессоров, сжимающих JPG с помощью MozJPEG и прочего. Однако я исхожу из предположения, что производители этих программ вообще-то конкурируют друг с другом и, предоставляя возможность сравнить компрессию онлайн, могут быть заинтересованы в подтасовке результатов.

К примеру, кодируя файл в MozJPEG с помощью онлайн-конвертера Squoosh (если ссылка не откроется, попробуйте зайти через VPN) производства Google, я не могу быть уверен в чистоте эксперимента, ведь я понятия не имею, с помощью какого кода на самом деле обрабатываются фотографии на их сервере. Поэтому, чтобы исключить подтасовку, я скомпилировал MozJPEG и Guetzli из исходного кода выложенного на GitHub, и установил на свой комп.

Результаты

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

В качестве отправной точки, вот фрагмент исходного файла (сам файл — 2000х1500 пикселей, без компресии) с 4х-кратным увеличением. Разумеется, чтобы разглядеть детали, желательно просматривать всё это на экране монитора, а не на смартфоне.

Поскольку ISO низковат, а съёмка велась без штатива, на изображении присутствует небольшой горизонтальный сдвиг, особенно заметный на линии, изображающей воду.

Теперь сжимаем файл разными компрессорами, увеличиваем в 4 раза и смотрим, насколько заметны JPEG-артефакты на контрастных элементах.

1. Adobe Photoshop (опция Save for Web), JPEG Quality 70 (размер файла — 1,3 мегабайт)

• Заметен мелкий равномерный «песочек» из артефактов вдоль волнистой линии;
• Появился небольшой шум вокруг белых букв на красном фоне;
• Диагональная красная линия приобрела характерный ореол а-ля Unsharp Mask;

Что я могу сказать по поводу качества? Если вы не собираетесь продавать эту фотографию в фотобанк или использовать в профессиональной полиграфии, на мой взгляд, фотошопный JPG 70 (иногда 65-75, в зависимости от сюжета) сегодня является тем компромиссом, который позволяет выложить картинку в онлайн и не хранить в архиве её дубликат с более высоким качеством.

Да, по теперешним стандартам фотка размером 2000х1500 пикселей и весом 1,3 мегабайт для веба тяжеловата. Однако обращаю внимание, что эффективность сжатия существенно зависит от характера самого изображения. На этом, например, много мелкой листвы, есть контрастные элементы и шрифт, тогда как фотографии с меньшим количеством контрастных деталей при сжатии с качеством 70 могут весить в 1,5-2 раза меньше. Опять же, посмотрим, насколько изменятся представления о допустимых размерах веб-картинок лет через пару лет…

2. MozJPEG, Quality 70 (размер файла — 730 килобайт)

А вот результат работы компрессора производства Mozilla. Если вы знаете, что такое JPEG-артефакты, полагаю, мне больше ничего не нужно говорить. Потому что при качестве 70 они тут практически повсюду, где линии хоть немного отклоняются от горизонтали с вертикалью. В дополнение к этому:

• на изгибах чёрной волнистой линии появлась «кафельная плитка» из квадратиков 8х8;
• шум вокруг букв резко усилился и стал похож на окантовку из полупрозрачного скотча;
• красной диагональной линии досталось больше всего: вдоль её границ появились цветные голубоватые артефакты.

По сравнению с фотошоповским JPG-ом, размер файла уменьшился практически вдвое. Однако за это пришлось заплатить почти двойным ухудшением качества. Я пробовал ослабить компрессию MozJPEG и повышать качество до 85 и выше, но, увы, результат во всех случаях был хуже, чем Photoshop JPG 70, а разница в размере файла не искупала ухудшения качества. Так что мой ответ MozJPEG — «нет, спасибо».

3. Guetzli, Quality 85 (размер файла — 630 килобайт)

Официально признанной особенностью компрессора Guetzli является повышенная ресурсоёмкость (а неофициальной — феноменально медленная скорость работы). Что, согласно документации, вполне нормально: да, ресурсов требуется уйма, зато качество и размер файла вас приятно удивят.

Подтверждаю: по части скорости и ресурсов всё именно так. На изготовление одного JPG-файла на моей достаточно мощной машине (AMD Ryzen 7 2700X, 32ГБ RAM) у Guetzli ушло около 4 минут. Вам не почудилось: МИНУТ! При этом процессор был задействован на полную, а вентиляторы гудели, как при обсчёте увесистой 3D-графики.

Почему для Guetzli я выставил качество 85, а не 70? Потому что при попытке выставить 70 он выдал сообщение, что 84 — это минимально низкая планка качества, с которой он вообще готов работать. Иначе, сказал он, будут гроссен артефактен и аллес капут.

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

И вот что я получил спустя четыре минуты:

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

Должно быть, я невнимательно прочёл инструкцию. Наверное, 85 в Швейцарии — это не просто нижний предел качества, а некий абсолютный ноль, когда оно вообще отсутствует. Давайте поддадим газу и посмотрим, что будет при 95. Небось, наступит красота?

А вот вам битте-дритте, сказал швейцарец спустя ещё четыре минуты:

4. Guetzli, Quality 95 (размер файла — 1 мегабайт)

Да, так заметно лучше. Однако даже этот результат — из разряда «на троечку с плюсом». То есть, чуть хуже (!), чем Photoshop JPG 70, который, замечу, делается не за 4 минуты, а мгновенно. Прибавка качества на 10 единиц радикально увеличила размер файла: с 630 кб до 1 МБ. Так стоит ли вся эта возня потраченного на неё электричества?

Не знаю. Зато я знаю, что получится, если выставить в Guetzli уровень качества 100:

5. Guetzli, Quality 100 (размер файла — 1,8 мегабайт)

Во, другое дело! Это по-нашему! Качество практически не уступает оригиналу и вполне заслуживает называться швейцарским: артефакты практически отсутствуют. Зер гут! Одно лишь плохо: размер файла увеличился до совершенно неприличных 1,8 мегабайт. Что почти в полтора раза больше, чем Photoshop JPG 70, с которого мы начинали.

Итого

Буду краток: ни MozJPEG, ни Guetzli не убедили меня в необходимости пользоваться ими для изготовления JPG-картинок для веба, поскольку оба компрессора выдают файлы хотя и меньшего размера, чем Photoshop 70, но при этом заметно худшего качества. А в случае, если мне понадобится изготовить легковесный JPG посредственного качества, я, пожалуй, воспользуюсь тем же Фотошопом: у него это получается поизящней.

P. S. Кажется, я знаю, почему Guetzli не позволяет устанавливать качество ниже 84. Очевидно, JPG в этом случае получается настолько ужасным, что его попросту стыдно показывать.

25 ноября   софт   технологии

Thank you, Jesus!

Вчера в моей вполне мирской, приземлённо-потребительской жизни произошёл случай, который я не могу истолковать иначе, как вмешательство высших сил.

Понадобилась мне для сайтовых надобностей хорошая программа-редактор HTML/CSS под macOS. Из тех, что я протестировал, особенно приглянулась своей толковостью и понятностью Coda. Поскольку программа у меня прижилась, а пробный период пару дней назад закончился на самом интересном месте, я решил купить лицензию.

Захожу на сайт производителя и обнаруживаю, что стоимость у программы достаточно ощутимая: 99 $. Однако поскольку программа и правда хорошая, да и привык я к ней, что ж, надо так надо. Начинаю заполнять форму покупки и в самом низу обнаруживаю поле «промокод». Ага, думаю, стоп. Раз скидочные промокоды принимаются, надо бы их поискать.

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

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

«Thank you for contacting. Happy to extend a 25% promo code. Best, Jesus D.»
(«Спасибо за обращение, вот, пожалуйста, промокод на скидку в 25%. С наилучшими пожеланиями, Jesus D.»)

«Thank you, Jesus!» — только и смог сказать я на это. И непроизвольно посмотрел вверх.

P. S. Если кому нужен промокод, пишите на почту. Уверен, Иисус будет не против.

23 ноября   быт   забавно   софт

Он больше не может

[НЕМОГУ], — заявил моему приятелю-дизайнеру англоязычный Adobe Illustrator после установки на Мак новой версии операционки, macOS Catalina:

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

29 октября   забавно   софт

Йа художнег

Корпорация Nvidia наконец-то выложила в свободный доступ анонсированную ещё в начале 2019 года программу GauGAN. С помощью нейросети эта программа превращает очень грубые наброски, которые пользователь делает мышкой на экране, в подобие реалистичного (или, скорее, сюрреалистического) пейзажа или фотоколлажа. И таким образом за пару минут даёт вам возможность почувствовать себя настоящим художником с большой буквы «Х»!

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

Что ж, звучит заманчиво. Давайте попробуем!

Вот мой 2-минутный набросок:

А вот результат нейросетевого художества:

Ну что я могу сказать?.. Вообще-то я намеревался изобразить реку, медленно несущую свои величественные воды мимо скалистых холмов, поросших рощами и кустарником; берега реки, по замыслу, оторочены песчаными пляжами, мимо которых вьются романтические стёжки-дорожки, а в лазоревой речной глади отражаются проплывающие по небу белые кучевые облака. Однако, глядя на результат, думаю, что нейросетевому Делакруа тут есть ещё, над чем поработать...

2019   забавно   софт   технологии

Какой архиватор лучше?

Беседовали тут на днях с приятелем-технарём о производстве бэкапов и подняли по этому случаю тему архиваторов — программ для сжимания данных: какой, мол архиватор лучше. Суть своих аргументов излагаю ниже.

С моей точки зрения, всё зависит от того, какой смысл вы вкладываете в слово «лучше». Применительно к архивации оно может означать, например, следующее:

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

Теперь давайте рассмотрим эти критерии по порядку.

1. Эффективность компрессии

Одним из лучших форматов в плане эффективности компресии, среди тех, что популярны, является 7z (автор Игорь Павлов). Официальная программа-архиватор этого формата называется 7-zip. Он сжимает на 6-7% эффективнее, чем RAR, и на 2-10% эффективнее, чем ZIP (см. тут). Разумеется, как при любой архивации, коэффициент сжатия сильно зависит от типа сжимаемых данных: текстовые файлы обычно сжимаются лучше всего, а картинки (.jpg) и музыка (.mp3) — значительно хуже, поскольку и в своём «обычном» состоянии являются сжатыми данными.

Формат 7z также хорош тем, что является бесплатным форматом с открытым кодом и имеет возможность шифрования архивов по стандарту AES-256 и защиты паролем. Доступны разные версии этого архиватора для различных платформ, в том числе для Windows, macOS и Linux.

Обладателям Макинтошей для работы с 7z могу предложить протестировать Keka — бесплатный архиватор для macOS с открытым кодом, поддерживающий формат 7z (а также восемь других форматов). Проект Keka достаточно активно развивается, так что если у вас будут идеи по улучшению или багрепорты, непременно напишите разработчику.

2. Возможность восстановления данных из битых архивов

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

На этот случай очень рекомендую использовать для архивации формат RAR. Чтобы иметь возможность восстановить битый архив, нужно при его создании обязательно включить опцию «добавить информацию для восстановления» (Put Recovery Record) и выбрать желаемый размер этой записи (от 1 до 100%). Чем больше размер записи, тем больший процент битого архива удастся восстановить в случае повреждения. Так, 5%-ная восстановительная запись сможет восстановить около 5% битого архива, 10%-ная — около 10 процентов, и т. д.

В то же время, добавление восстановительной записи увеличивает размер файла с архивом: чем больше запись, тем больше размер архива. Вследствие чего возникает вопрос: а не проще ли изготовить две копии этого архива и хранить их в разных местах — например, на двух разных хостингах? Возможно. Однако иногда файлы настолько большие, что нет возможности возиться с изготовлением и пересылкой по сети двух копий архивов. Так что если вы планируете хранить ваш архив в единственном экземпляре и хотите застраховать его от частичного повреждения, имеет смысл использовать RAR.

(К слову, RAR — не единственный формат, который позволяет добавлять к архивам восстановительную запись. Есть ещё ARС, ARJ, FreeARC и некоторые другие. Однако, они проигрывают ему по некоторым другим важным параметрам — эффективности/скорости сжатия, стабильности работы, кроссплатформенности, распространённости и т. д.)

К минусам RAR можно отнести, пожалуй, лишь закрытость программного кода, вследствие чего этот архиватор нельзя проверить на отсутствие бэкдоров и уязвимостей. Поэтому если вы намереваетесь защитить ваши RAR-архивы паролем, вам остаётся уповать на добросовестность разработчика. Которого, кстати, зовут Евгений Рошал (да, это наш бывший соотечественник, челябинский программист, ныне живущий где-то в Германии). Название RAR является сокращением от Roshal ARchiver, то есть «архиватор Рошала»).

Пара слов о стоимости. RAR не бесплатен (даже консольная версия!): однопользовательская лицензия стоит 29 $ (около 2000 рублей с учётом налогов). При этом, как заверила меня представитель службы продаж WinRAR, такую лицензию разрешается использовать на всех платформах (Windows, macOS, Linux и пр.) и любом количестве устройств, при условии, что ими пользуется только владелец лицензии.

3. Взломоустойчивость

Если вы намереваетесь защитить ваш архив паролем, естественно, вам захочется, чтобы запароленный архив было как можно труднее взломать. Среди прочих, все популярные форматы архивирования (к примеру, zip, rar, 7z) позволяют защищать архивы паролем с шифрованием по стандарту AES-256. Поскольку алгоритм шифрования используется один и тот же (хотя возможны и другие), взломоустойчивость в плане хакерского взлома запароленного архива, насколько я понимаю, должна быть, так или иначе, примерно сходная (если я заблуждаюсь, поправьте меня).

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

4. Открытость кода

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

Из тех форматов архивации, что не канули в небытие и продолжают развиваться и сохранять популярность, форматами с открытым кодом являются tar, FreeArc, pea, zip, zpaq и 7z.

5. Кроссплатформенность

Разумеется, хорошо иметь возможность пользоваться архиватором на нескольких платформах — и на Windows, и в macOS, и в Linux. Насколько мне известно, все сколько-нибудь популярные форматы архивации имеют версии под все основные платформы, а иногда и под какие-нибудь экзотические, типа Solaris, IRIX или BeOS.

Бывают случаи, когда у архиватора нет версии под какую-то определённую платформу (к примеру, у коммерческого архиватора StuffitX до сих пор нет версии под Linux). На мой взгляд, такая негибкость здорово вредит популярности архиватора и практически равносильна заявлению: «не пользуйтесь нашей программой». А маловостребованные программы, в свою очередь, имеют меньшие шансы остаться на плаву в течение долгого времени, поскольку менее активно развиваются и быстрее вымирают. Так что кроссплатформенность — хороший показатель, способствующий популярности программы и её дальнейшему совершенствованию.

Итого

Среднепродвинутому пользователю при прочих равных условиях могу порекомендовать следующее:

• Если вы цените open source и хотите, чтобы ваши архивы занимали как можно меньше места, архивируйте ваши данные с помощью 7z.

• Если вы хотите иметь возможность частично восстановить архивы в случае повреждения (типичная ситуация: очень объёмные архивы в единственном экземпляре), архивируйте ваши данные с помощью RAR. В процессе создания архива не забудьте добавить информацию для восстановления (recovery record).


Ссылки по теме:
Сравнительная таблица форматов архивации (англ.)
Сравнительная таблица программ-архиваторов (англ.)

2019   софт

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

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

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

Почему тема бесплатных программ внезапно стала для меня актуальной? Дело в том, что несколько месяцев назад я установил на свой компьютер Линукс и начал его потихоньку осваивать. А как известно, именно на Линукс-платформе бесплатное программное обеспечение является по сути «правилом по умолчанию» (а не жалким исключением, как в мире Windows и MacOS).

Казалось, бы, красота! Халява! Какие тут вообще могут быть вопросы? Бесплатно же?!

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

Поясню, что я имею в виду. Скачав любую программу, особенно, предназначенную для профессионального использования, мы что обычно делаем? Начинаем тестировать её функционал и удобство пользования. И, при возможности выбора, какую из двух-трёх и т. д. программ-конкурентов выбираем? Ту, функционал которой нас больше всего устраивает, и которой нам пользоваться удобнее. (Разумеется, если программы платные, то их стоимость также может быть значимым фактором, определяющим наш выбор.)

Возьмём коммерческий, платный софт. Допустим, мы приобрели лицензию на какую-нибудь программу. Она нас в целом устраивает, но там есть пара функций, которые, на наш взгляд, реализованы не лучшим образом. Или вообще не реализованы, но нам очень нужно, чтобы они там были. Или мы обнаружили там досадный баг, который выносит мозг и мешает работать. Что мы в таком случае делаем? Пишем разработчикам программы письмо с просьбой внедрить нужную фичу или устранить баг. И как разработчики в этом случае действуют? Как правило, они внимают нашей (особенно — коллективной) просьбе: внедряют фичу, устраняют баг.

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

Теперь возьмём ту же ситуацию, с той единственной разницей, что программа бесплатная. Как и в первом случае, мы, пользователи, желаем как-то улучшить её — добавить функцию или устранить баг, для чего пишем письмо разработчику. И получаем примерно такие ответы:

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

Ответы, кстати, реальные. По интонации текста заметно, что наш пользовательский запрос не обладает для разработчика достаточным весом и требовательностью. Почему? Вероятно, потому, что основная мотивация разработчика — некоммерческая. Мы для него не клиенты и голосовать купюрой в даннном случае не можем. Мы скорее одаряемые. Программа — не товар, а подарок, а дарёному коню, как известно, в дёсны не заглядывают. К тому же разработчик писал её не для нас, а в первую очередь для себя — по словам Линуса Торвальдса, «just for fun», исключительно удовольствия ради. Однако он искренне желает, чтобы она доставляла нам такое же удовольствие, как и ему.

Но, на мой взгляд, это благое намерение вряд ли реализуемо в полной мере. Во-первых потому, что мы не являемся авторами программы и не испытываем к ней родительских чувств. А во-вторых, смотрим на неё как на инструмент, которым надеемся решить какие-то свои практические задачи — причём, нашим собственным способом. И как же нам, пользователям, получить если не «такое же», то хотя бы сходное удовольствие? Очевидно, внеся свою крошечную «микросоавторскую» лепту: предложив фичу (и убедившись, что она действительно была внедрена) , сообщив о баге (и убедившись, что он действительно был устранён).

Разумеется, это потребует внесения изменений в программу, которую придумали не мы. И далеко не все они будут с точки зрения автора-разработчика желательны, обоснованы или хотя бы разумны. Потому что он тут главный. (Как однажды сказал Торвальдс на встрече со своими фанатами, «Я — ваш бог».) Он тут всё решает — что нужно, а что ненужно; что разумно, а что глупо; что будет реализовано, а что нет. А это — отдельное удовольствие. Готов ли будет некоммерческий разработчик поделиться крошкой своего могущества? Мой личный пользовательский опыт свидетельствует: далеко не всегда. Но бывают невероятно приятные исключения.

Так что если вы как пользователь вынуждены иметь дело с бесплатным софтом (под вынужденностью я понимаю отсутствие достойной коммерческой альтернативы) — запасайтесь терпением и тренируйтесь быть нетребовательными. Или учитесь на программиста и пишите программы сами. Джаст фор фан.

2019   софт

Опасности FaceApp

функции FaceApp
© faceapp.com

Как сообщает Forbes, приложение FaceApp на прошлой неделе (с 9 по 19 июля) заработало более миллиона долларов. По заявлению разработчиков, на сегодняшний день оно занимает первое место в магазинах AppStore большинства стран.

На волне этого головокружительного успеха интернет-обозреватели, блогеры и эксперты по компьютерной безопасности, а вслед за ними и миллиарды простых, ранее непуганых пользователей вдруг жутко всполошились и забили тревогу, вопрошая, не содержит ли FaceApp каких-либо угроз для конфиденциальности и безопасности. Есть ли тут реальные основания для опасений? Что ж, давайте, как говорится, подумаем вместе.

Что представляет собой FaceApp? Это мобильное приложение для манипуляций над селфи с помощью нейросети. Загружаете в него вашу фотку и можете изменить на ней возраст (состарить себя или омолодить) или пол (превратиться из женщины в мужчину и наоборот), поэкспериментировать с причёской, добавить усы, бороду, макияж, татуировку, фон и т. п.

В чём суть претензий к разработчикам, помимо того, что разработчики из России? В том, что пользовательское соглашение FaceApp слишком широко трактует право распоряжаться личными данными пользователей. Согласно этому документу, приложение получает права на использование имени пользователя, его/её облика, голоса и других индивидуальных черт, достаточных для того, чтобы установить личность человека. Вдобавок оно получает право собирать разнообразную информацию о смартфоне — по принципу, как это частенько бывает, «включая, но не ограничиваясь».

Начну сразу со второго пункта, касающегося прав приложения бесконтрольно копаться в вашем смартфоне. Не знаю, как поступаете вы, а я во время установки любого приложения на смартфон обращаю внимание на список полномочий, которые оно для себя запрашивает. И если эти полномочия чрезмерны и существенно отличаются от разумного минимума, я жму кнопочку «отмена» и навсегда посылаю такое приложение к чёртовой бабушке. Пример: калькулятор просит доступ к геолокации, фотогалерее, контактам, камере, микрофону, шагомеру... Подумайте, нафига калькулятору всё это нужно?

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

Поэтому если а) в пользовательском соглашении FaceApp действительно есть упомянутые пункты из серии «включая, но не ограничиваясь» и б) вы действительно цените вашу приватность, — вряд ли следует устанавливать эту программу. На мой взгляд, шпионские функции, записанные мелким текстом на двадцать пятой странице лицензионного соглашения, которое не один человек не станет читать в момент установки — достаточное основание, чтобы обходить такие забавы стороной.

Теперь к пункту номер один, насчёт права на использование имени пользователя, облика, голоса и других индивидуальных черт. Мне не очень ясно, каким образом разработчики намереваются использовать что-либо, кроме изображения вашего лица (т. е. фотографии). Или речь о том, что FaceApp, пользуясь полученными выше правами, потихоньку запишет ваш голос, зафиксирует мимику и походку с фронтальной камеры?.. Если так, то это, конечно, довольно бессовестный ход. Но, если честно, это ничем не опасней прогулки по нынешней Москве, где уже в 2019 году будет запущена одна из крупнейших в мире систем распознавания лиц, подключённая более чем к 100 000 видеокамерам внешнего наблюдения. И которая безо всякого спроса будет записывать, и хранить вечно, и систематизировать, и, очевидно, передавать, кому захочет (это к вопросу о праве на использование) абсолютно всю информацию о вас, которую можно получить средствами наружного наблюдения — внешность, одежду, походку, мимику (насчёт голоса не знаю, но почему бы и нет?). И ничего вы с этим не сделаете, поскольку запретить сбор данных о себе не сможете. FaceApp такая малина и не снилась! Наша сегодняшняя обыденная городская жизнь нарушает приватность так агрессивно, что переживать насчёт сбора Фейсапом аналогичных данных, пусть даже и полученных неочевидным, полужульническим путём, на мой взгляд, не имеет особого смысла. (При этом, ставить такую программу на смартфон её я всё равно не рекомендовал бы, поскольку помимо данных о вашей внешности на нём может храниться и другая важная информация, например, данные внешности вашего кота, секретные фотки с шашлычных посиделок на даче, секретные рецепты бабушкиных пирожков и мн. др.)

Другое дело, если интернет-общественность дико возмущена именно тем, что собранные данные могут быть использованы безо всякой материальной компенсации. Допустим, на базе ваших умопомрачительных внешних данных разработчики создадут персонажа компьютерной игры (скажем, очередную Лару Крофт) и ничего вам за это не заплатят, негодяи. Ну что ж, если такое случится, это, друзья мои, ещё один — и, возможно, самый весомый повод не ставить FaceApp на ваш смартфон. А уж как наше селфи будет выглядеть в старости, даст Бог, узнаем в своё время — с помощью бесплатного приложения «Зеркало» на стене в прихожей.

2019   софт   технологии

Пчёлы против мёда

Пчёлы против мёда

«Не может быть», — подумал я, увидав этот заголовок в Медузе. — «Не могут пчёлы отказаться от мёда. Так не бывает.»

Открываю полный текст новости — и точно:

«Компания Apple объявила <...>, что откажется в новой операционной системе MacOS 10.15 от программы iTunes. Вместо нее появятся три отдельных приложения: Подкасты, ТВ и Музыка.» (Отсюда.)

Слава Джобсу, всё нормально! Просто ребята из Apple решили отрубить своей яблочной гидре одну голову, чтобы вместо неё вырастить три новых. Теперь ждём симметричного заявления от старика Гейтса. К примеру, крупными буквами:

«Компания Microsoft отказалась от телеметрии».

А ниже — помельче:

«Вместо одной обычной телеметрии появятся три отдельных версии — Телеметрия Домашняя ($199), Телеметрия Профессиональная ($289) и Телеметрия Тотальная (бесплатно)».

2019   СМИ   софт

Знакомство с Линуксом (часть 4)

(Начало см. тут)

Итак, самое общее представление о критериях, которым должна соответствовать альтернативная операционная система, у нас имеется, равно как и краткий список необходимых программ. Будем считать, что запрос сформирован.

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

Ситуация на рынке настольных ОС

По данным за февраль 2019 г., львиная доля настольных компьютеров и ноутбуков (87,5 % рынка) работают под управлением одной из версий Windows, из которых примерно половина приходится на Windows 10, а треть — на Windows 7.

Вторую строчку на рынке настольных систем занимает macOS. Невероятно, всего-то 9 процентов! (По сведениям из другого источника доля macOS несколько больше, 14 %, но это не особенно меняет погоду.) На фоне колоссальных объёмов продакт-плейсмента Apple в кино, где чуть ли не каждый второй персонаж разгуливает, держа в одной руке макбук, а в другой айфон, сложно поверить, что в реальности доля macOS столь невелика.

Итак, на сегодня Windows и macOS совместно владеют 96,5 % рынка операционных систем. Много ли это? Да, это очень много, подавляюще много, «почти всё». Глядя на внушительную длину синей полоски, можно решить, что вопрос об альтернативе закрыт и никакого третьего пути быть не может. Ведь популярность операционной системы — очень значимый фактор для рядового пользователя. И дело тут вовсе не в приятном, успокаивающем чувстве принадлежности к большинству, а в более высокой вероятности получить поддержку в случае неполадок с системой. Если вы не профессиональный программист-разработчик, для чего вам ставить на свой комп альтернативную, но непопулярную операционку, которой пользуются полтора десятка людей во всём мире? Ведь в таком случае вряд ли стоит расчитывать на оперативное исправление ошибок, внедрение новых функций и разработку новых программ под эту систему  — просто потому, что заниматься этим будет некому.

Могучее меньшинство

Популярность ОС — это, конечно, большой плюс для пользователя, но не единственный. Так что давайте теперь взглянем на третью строчку таблицы — туда, где, несмотря на агрессивную конкуренцию и многомиллиардные маркетинговые вложения двух самых дорогих компаний мира, каким-то образом сохраняется и успешно эволюционирует альтернативная цифровая жизнь. Итак, почётное третье место на рынке настольных ОС — а это как минимум 2 % всех десктопов и ноутбуков на планете Земля — сегодня занимает Linux. (По данным из других источников, эта доля несколько выше и составляет от 3,5 до 5,7 %)

Отметим, что «минимум 2-3 или 5 процентов» — это доля Linux именно на рынке настольных ОС, то есть, сравнительно маломощной, домашне-офисной техники, а эта ниша для Linux достаточно новая и нетипичная. Ведь с самого начала и до сего дня Linux успешно используется в первую очередь как серверная ОС, потому неудивительно, что она изначально ориентирована скорее на сисадминов, чем на обычных пользователей. На сегодняшний день мировая доля Linux-серверов составляет по разным оценкам от 35 до 50%, что в любом случае превышает долю серверов на базе Windows.

А вот рынком суперкомпьютеров Linux владеет целиком, полностью, абсолютно и безраздельно! Начиная с 2017 г. доля Linux на рынке суперкомпьютеров составляет 100 % (см. тут). Это значит, что все наиболее мощные компьютеры мира из рейтинга Топ 500 работают исключительно на Linux.

Несколько фактов о Linux

Пингвин Такс — логотип-талисман Linux © Larry Ewing

• Название «Linux» обозначает не одну операционную систему, а целое семейство систем — так называемых Линукс-дистрибутивов, разрабатываемых различными независимыми компаниями. Единого, «официального» Линукс-дистрибутива не существует: все они вполне официальные, просто немного разные.

• В основе каждого Линукс-дистрибутива находится ядро Linux.

• Автор ядра Linux — финский программист, а ныне гражданин США Линус Торвальдс. Первая версия ядра была написана им в 1991 г. в период обучения на третьем курсе Хельсинкского университета. И по сей день мистер Торвальдс продолжает разрабатывать новые версии ядра Linux при активном участии сторонних программистов.

• Хотя владельцем торговой марки Linux является Линус Торвальдс, само ядро Linux распространяется абсолютно бесплатно. Кто угодно может скачать ядро Linux и делать с ним что угодно, в том числе модифицировать и использовать в коммерческих целях. Этим, в частности, успешно пользуются IT-корпорации. Например, Red Hat, Canonical и SUSE добились впечатляющих финансовых результатов с помощью своих Linux-дистрибутивов, созданных ими на бесплатном ядре Linux.

• Сколько всего существует различных Линукс-дистрибутивов? По моим сведениям, более ста! С полным списком и актуальным рейтингом дистрибутивов можно ознакомиться на сайте DistroWatch.com.

• Если у вас имеется какое-либо мобильное устройство (смартфон, планшет, умные часы и т. п.) на базе операционных систем Android или Chrome OS  — можете считать, что с Linux вы немного знакомы. Потому что обе эти системы производства Google основаны на ядре Linux.

• Чуть не забыл! Мой сайт также работает на сервере Linux. Спасибо, Линус!

(Продолжение следует)

2019   софт