Scalability

Есть в цифровой фотографии — точнее, в её маркетинге — одна вещь, которая меня периодически раздражает.

Купите любую камеру, и в комплекте поставки вы найдёте диск с «программным обеспечением». С этим, думается, никто спорить не будет. Как же без него-то.

А вот теперь — на что спорим? Софт, который содержится на диске, обязательно будет отстойным. 🙂 У одних производителей бóльшим, у других меньшим, но отстоем. Я пока не встречал исключений из этого правила.

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

(Любопытно, что, например, бесплатная Picasa весит в дистрибутиве всего 10 Мб, а при этом имеет функционал, способный полностью удовлетворить абсолютное большинство фотографов-любителей…)

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

А вот есть ещё такое понятие, как scalability. Очень важная штука в IT-сферах. Да и не только там. На русский его обычно переводят как «масштабируемость», но это в данном контексте не совсем адекватно.

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

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

Умение анализировать и решать такие проблемы составляет отдельную часть программёрского искусства. Люди, владеющие таким умением, ценятся весьма высоко… равно как и результаты их трудов, кстати. Высокая цена программных продуктов, чьи названия содержат в себе слова типа «Enterprise Version», берётся вовсе даже не с потолка. Чего бы там по этому поводу не орали кулхацкеры-линуксоиды…

Казалось бы, ну при чём тут цифровая фотография? 🙂 А вот мы уже и подошли к этому моменту.

При всех своих достоинствах мой новый Panasonic LX3 подтвердил сформулированное в самом начале правило. 🙂 Тот софт, который фирма положила в комплект от себя, оказался фуфлом. 🙂 Но они положили в комплект ещё и Silkypix, а это уже отдельный разговор.

Silkypix — очень хороший, известный и любимый многими фотографами RAW-конвертор. Умеет работать и со JPEG. Приятное дополнение, и я было обрадовался.

Рано обрадовался. 🙂

Это была SE-версия приложения. Special Edition, то есть. Special’ьность заключалась в том, что приложение лишили части функциональности. Так, чтобы оно работало только с файлами от камер Panasonic.

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

Выкинуть поддержку чужих RAW-файлов — это легко. У них у всех даже и расширения разные. Закомментарить соответствующий кусок кода, да профильтровать список файлов в диалоге открытия так, чтобы кроме *.RW2 ничего не показывал.

А вот файлами JPEG гораздо забавнее. Их умеют снимать все камеры, и формат везде одинаков. 🙂 Как тут отличишь своё от чужого?

Способ на самом деле есть, и не такой уж он и мудрёный:

  1. Открыть файл на чтение;
  2. Считать начальный кусок файла (около трёх десятков Кб);
  3. Закрыть файл;
  4. Найти в считанном куске EXIF;
  5. Отпарсить (разобрать) найденный EXIF;
  6. По результатам парсинга принять решение;

Это реально работает, но вот тут-то в дело и вступает scalability!

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

Если папка содержит пару-тройку десятков файлов, то всё чудесно. А если там этих файлов несколько сотен? А — несколько тысяч?!  Опаньки.

Тут даже не нужно быть специалистом-девелопером, чтобы уверенно ответить: приложение будет глючить, гоняя диск в хвост и в гриву.

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

То есть с точки зрения scalability разработка Silkypix SE представляет собой образцовый пример того, как делать не надо. Отличное приложение доведено до совершенно непотребного состояния. Непотребного в самом буквальном смысле: оно перестало быть пригодным к употреблению.

Казалось бы, чего проще: взять готовый и рабочий софт, после чего отломать от него часть функционала. Агащазблин. Конечно, ломать всегда проще, чем строить. Но и ломать, блин, нужно с умом!

Реклама
  1. MaximumExchange.ru
    22.04.2009 в 14:03

    Отлично написано, Михаил, браво!У меня с FZ7 была точно такая же история, только я диск выкинул сразу, к свиньям собачьим 🙂

  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: