6 ноября 2014
Интервью с разработчиком: Сергей Чужанов, Parallels
Илья Субботин
Доброго времени суток всем читателям AMR, сегодня в очередном выпуске рубрики «Интервью с разработчиком» мы общаемся с одним из ключевых специалистов в команде разработчиков Parallels Сергеем Чужановым. Компания, помимо других сфер деятельности, является опытным игроком на рынке кросс-платформенных решений для обеспечения удаленной работы, в том числе и в ставшем для многих обычной рабочей средой «облаке». Об одном из продуктов компании для Android-устройств (Parallels Access) мы уже рассказывали в обзоре. Сфера довольно актуальная, поэтому мы нашли, о чем расспросить Сергея Чужанова. Итак, поехали.
Сергей Чужанов, старший UI-разработчик продукта Parallels Access.
Работает в области разработки коммерческих софтверных продуктов более 10 лет. Начинал карьеру в компании военно-оборонного значения, где разрабатывал ПО для визуализации данных по показателям камер, следящих за самолетами. Далее сосредоточился на интерфейсах различных продуктов — сначала Acronis True Image, а затем ABBYY FineReader. Писал новые компоненты, переписывал старые, занимался реверс-инжинирингом библиотек Windows. В ABBYY Сергей изменил свою специализацию и стал заниматься мобильными клиентами, в частности, написал iOS-клиент для FineReader Online. Последние 2 года сконцентрирован на разработке приложения для удаленного доступа Parallels Access. Из нетривиальных задач выделяет разработку UI для выделения текста на удаленном хосте в стиле iOS и отдельно взятых iOS-жестов для применения сенсорного интерфейса к удаленным десктоп-приложениям. Сейчас в области интересов Сергея — Android-клиент для Parallels Access, автоматизация обхода ограничения в 64К методов в одном Dex-файле, использование языка Scala для разработки под Android.
Интервью
— Здравствуйте, Сергей, спасибо за согласие поучаствовать в нашем интервью. Несколько слов о Вашей деятельности в Parallels. Что Вас привело в компанию?
В компанию я пришел по приглашению Алекса Пацая (@alexmak), директора по программ-менеджменту Parallels Access и известного Apple-блогера. Он рассказал мне о проекте продукта, позволяющего получать полноценный доступ к удаленному компьютеру с планшета или телефона. На тот момент я уже некоторое время занимался разработкой под iOS. Задача выглядела нетривиальной, и я пришел в Parallels.
— Если не секрет, в чем заключается Ваша деятельность?
— Я занимаюсь разработкой клиентской части продукта Parallels Access. Cначала только iOS-версией, а теперь и Android. Основное идейное направление моей работы — адаптация сенсорного интерфейса для работы с настольной системой.
-Каков основной принцип команды Parallels при разработке своих продуктов?
Простота – это высшая степень сложности. Вот к этому мы прибавляем еще удобство.
-Выше мы упомянули, что некоторые решения затрагивают аспект удалённой работы. Как Вы считаете, на каком уровне сейчас находится ПО для обеспечения такого вида работы? В каком аспекте возникают проблемы на стороне пользователей?
— На планшете/телефоне пользовательский ввод качественно отличается от такового на настольном компьютере. Мышку заменяет сенсорный экран. Клавиатура рисуется на экране в ущерб интерфейсу приложения и имеет ограниченный набор клавиш. Концепция работы с текстом совсем другая, выделенный текст оборудован булавками для изменения выделенной области и т.д. Все это никак не поддерживается обычной настольной системой, она не рисует булавки, линзу, в общем, не рассчитана на ввод пальцем по сенсорному экрану. Поэтому большинство мобильных приложений для удаленной работы предлагают пользователю пальцем просто перемещать мышь и нажимать ее кнопки. Таким способом довольно сложно, например, выделить нужный участок текста. Пользователю часто приходится делать много попыток, пока он не попадет в нужную начальную точку и не завершит жест в нужной конечной, особенно если текст мелкий. В Parallels Access мы стараемся предоставить пользователю такой интерфейс к настольному приложению, чтобы у него было ощущение работы с «родным» приложением, написанным для мобильного устройства.
-К чему нужно стремиться, и решаемы ли возникающие проблемы?
Если мы про бизнес, то, думаю, для большинства команд вне зависимости от размера основная проблема – проблема нахождения компромисса, как добиваться максимального качества при разумном расходе ресурсов. Вариаций на эту же тему предостаточно: что выбрать выпустить продукт правильно или выпустить его быстро, вступать в отношения, если думаешь только о себе, или наслаждаться холостым положением. Большинство интересных проблем решается только до определенной степени. Эта степень зависит от технологических возможностей и от количества усилий, вложенных в решение. Часто проблема не в отсутствии решения, а в необходимости выбирать, какие проблемы решать сегодня, а какие могут подождать.
-Рассмотрим сценарий: обычный пользователь планшета на Android использует рабочий ПК, но, по договоренности с руководством, получает разрешение на частично удаленную работу. Как он сможет убедить начальство, что использование, к примеру, Parallels Access безопасно с точки зрения сохранения конфиденциальности корпоративной информации?
Весь поток данных между клиентским планшетом и удаленным компьютером шифруется в обе стороны, причем таким образом, что расшифровать его могут только клиент и компьютер пользователя, больше ни у кого нет нужных для этого ключей, даже у наших серверов, которые участвуют в генерации этих ключей, но никогда не знают их. Кроме того, Parallels Access позволяет настроить обязательную авторизацию на удаленном компьютере при каждом подключении. Это защищает от утечек информации в случаях, когда планшет утерян/украден, поскольку данные с удаленного компьютера не хранятся на планшете. В недавнем инциденте с выложенными в сеть аккаунтами российских и иностранных интернет-компаний, мы вынуждены были сбросить пароли учетных записей пользователей, чей ящик зарегистрирован на Яндекс (у Яндекса был действительно большой процент реальных профилей, которые «утекли») и предложить их сменить самостоятельно. Мы убрали авторизацию на компьютерах пользователя, и смена пароля означала повторную авторизацию всех компьютеров и привязку к приложению. Такие меры со своей стороны мы посчитали необходимыми, чтобы не позволить злоумышленникам получить гораздо более важную информацию, размещенную на компьютере пользователя. То есть здесь уже действовала сама компания, которая решала проблемы третьей стороны в интересах своих потребителей. Ну и, конечно, пользователю рекомендуется защитить сам планшет стандартными средствами блокировки с помощью PIN или пароля.
-Такой вопрос обусловлен затянувшейся полемикой в сфере безопасности частной информации, начавшейся с новостей о слежке со стороны АНБ и не так давно получившей новый виток развития, в т.ч. из-за утечек из iCloud и, казалось бы, благонадежного Snapchat. Как Вы считаете, есть ли способ впредь предотвратить доступ хакеров к личной информации пользователей? Или же мы должны переосмыслить характер того контента, которым мы, пусть и несознательно, делимся с мировой паутиной?
Вы же знаете, нет лекарства от всех болезней 🙂 Но есть понимание, что в болезнях виноват с большей вероятностью сам человек, нежели кто-то еще. Это как в 50 лет осознать, что ты был достаточно глуп, чтобы не ходить в спортзал в 25-40. Так же, как ты выкладывал все, что ни попадя в сеть и пренебрегал элементарными правилами интернет-гигиены, как использование сложных паролей, регулярная их смена, не использование галки «Save password», обновление ПО.
Критически секретные материалы, решающие вопросы жизни и смерти, не стоит содержать в открытом виде в удаленных хранилищах даже самой надежной компании. Теоретически, даже зашифрованные данные в далеком будущем кто-то сможет расшифровать. Поэтому полностью исключить возможность утечки данных из облака невозможно. Если есть, что скрывать, — не выкладывайте. Храните локально, делайте регулярные зашифрованные резервные копии на разные физические носители, храните их в сейфах и т.д. в зависимости от степени секретности 🙂
Не стоит впадать в крайность, трезво оценивайте секретность информации. Вопрос в том, сколько на расшифровку понадобится времени и вычислительной мощности, может ли кто-то быть мотивирован в достаточной степени, чтобы так старательно добиваться ваших данных.
— Несколько общих вопросов. Можете ли Вы назвать себя апологетом той или иной мобильной ОС?
Сложно сказать, поначалу я однозначно склонялся в сторону iOS, поскольку она была более развитой, чем Android, но сегодня по функциональности они друг другу не уступают. Разработка под них очень разная, но интересно и то, и другое. Сложность качественной разработки под Android выше, там пока еще больше непредсказуемых ситуаций из-за гигантского количества разных Android-устройств. Они различаются размерами экранов и версией Android, поэтому могут вести себя по-разному. Но это еще ничего, если бы едва ли не каждый производитель не считал своим священным долгом что-нибудь переделать в операционной системе исключительно для своего аппарата, внося уникальные баги, присущие только устройствам данного производителя, а зачастую даже одной конкретной модели. В итоге ты протестировал на 100 устройствах, а все равно после выпуска со 101-го начинают сыпаться отчеты о том, что что-то где-то глючит.
— Какие устройства, в основном, используют в работе / вне работы в команде Parallels?
Если речь идет о телефонах, то, как правило, наши инженеры используют устройства на той платформе, под которую разрабатывают. Я в основном использую iPhone, Android — реже, в основном в поездках. Многие используют браслеты-шагомеры, я сам какое-то время пользовался Fitbit Force — но у меня он не прижился.
— Прошедшие 3/4 этого года многим интересующимся мобильными технологиями запомнились своими релизами. Что для Вас стало наиболее ярким анонсом? Ждете ли какой-либо новый продукт в ближайшем будущем?
Из недавнего меня заинтересовали часы Apple Watch, мне нравится сама идея Wearable Device, и, например, в той же самой области здоровья у этих устройств есть колоссальные перспективы, особенно учитывая, что через 20 лет население планеты будет на 20% состоять из тех, кому за 65 лет. А вообще, на мой взгляд, нынешние релизы в основном эволюционные — быстрее, выше, сильнее. Революционные продукты в мобильной индустрии появляются не каждый год. С позиции разработчика это не так уж плохо — ведь революция означает новую платформу, которую нужно освоить, понять ее возможности и ограничения для разработки, а на это уходит несколько лет. Разработчики и без этого живут в режиме «революция — каждые три месяца!» 🙂
— Приоткройте завесу тайны, грядут ли анонсы новых продуктов от Parallels в обозримом будущем?
Разумеется, у Parallels есть roadmap продуктов на ближайшие несколько лет, в разработке новые технологии и улучшения существующих. Мы не любим анонсировать продукты преждевременно. Когда мы чувствуем хороший отклик потребителей/бета-тестеров, когда сами довольны его возможностями, характеристиками, дизайном — тогда мы готовы рассказать миру о нем.
Спасибо за Ваше время.
Уважаемые читатели AMR, вы можете оставлять ваши вопросы к Сергею в комментариях.
Ну, удачи им, как говорится.