пятница, 29 мая 2015 г.

Выбор программ для дистанционной работы на компьютере с Linux

Оригинал: Choosing Software to Work Remotely from Your Linux Dev Station 
Автор: Jeff Cogswell 
Дата публикации: 1 April 2015 
Перевод: Н.Ромоданов 
Дата перевода: май 2015 г.

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


Работа с Linux Ubuntu и LXDE происходит дистанционно с моего 10-дюймового планшета ASUS Transformer. Для этого используется приложение Remotix. При этом я пользуюсь клавиатурой и мышью или трекпадом.
Работа с моими устройствами состоит из двух составляющих: управление файлами и дистанционная работа с программным обеспечением. Управление файлами, в свою очередь, подразделяется на две составляющие: облачное хранилище и управления версиями. Я собираюсь описать это в хронологическом порядке - как я начинал настраивать программы в облаке для мобильного телефона, с какими проблемами я столкнулся и как пришел к решению, которым пользуюсь в настоящее время.

Первоначальная настройка и облако

Вначале я решил, что буду хранить файлы на облачном сервере. Прежде, чем остановиться на Dropbox, я попробовал несколько вариантов, и пришел к очень странным решениям, которые оказались временными. В то время я много писал для клиента, который пользовался Windows. Требовалась работа на большим количеством документов, и использовался облачный сервер Microsoft, который назывался SkyDrive (и который потом был переименован в OneDrive). Я начал пользоваться этим сервером и даже нашел сторонний драйвер Linux, который назывался Storage Made Easy. Хотя драйвер Storage Made Easy работал великолепно, служба Microsoft была далека от идеала. Важные файлы просто исчезали. Конечно, это было неприемлемо. Поэтому я начал изучать другие варианты. Временно я стал для написания статей и работы общего характера использовать систему контроля версий, но для простой работы с документами это оказалось слишком сложным. Кроме того, я хотел чтобы некоторыми из документов могла пользоваться супруга или кто-нибудь другой, кто не имеет технического образования, но они не были знакомы ни с git, ни с svn.
У меня было одно основное требование к облачной системе, которую я искал: она должна была автоматически сохранять в облачном хранилище файлы, которые были изменены. Во время работы с исходным кодом на завершающих этапах и во время тестирования требуется вдумчиво выполнять работу, и я просто не хочу еще запоминать, загружал ли я повседневные документы.
Google Drive — звучит великолепно ... если вы не используете Linux (Увы! Серьезно, Google?). Есть несколько сторонних решений для использования Google Drive на Linux. Но прежде, чем я опробовал решения сторонних разработчиков, я наткнулся на хранилище Ubuntu One. Оно оказалось идеальным. Оно предоставляло для моих документов хороший объем памяти (5 гигабайтов) и все делало именно так, как мне было нужно. И это бесплатно! Файлы автоматически сохранялись на сервере, а когда я обращался к ним с другого компьютера, они загружались автоматически. Я также мог получить доступ к своим файлам с помощью замечательного веб-интерфейса, что было еще одним дополнительным бонусом. А на тот случай, когда я должен был пользоваться Windows, у них даже был клиент для Windows.
За исключением лишь одного - Ubuntu One был остановлен. Снова увы!
Вернемся к нашему рассказу. Я иногда пользовался Dropbox, когда он еще был новым, и не помню, чтобы в нем было все так, как надо, но я решил сделать еще одну попытку. Оказалось, что он значительно улучшился. Для того, чтобы получить бесплатное дополнительное пространство, вы должны выполнять какие-то глупые действия (например, скачать их почтовый клиент для Android), но я их выполняю, если можно бесплатно получить больше места. И вот теперь я пользуюсь Dropbox и до сих пор он, в основном работает хорошо, за исключением лишь следующего: тогда как на настольных компьютерах (в том числе на Linux и Windows) файлы синхронизируются автоматически, Android-клиент работает по-другому. Я понимаю, чем это обосновано; на устройствах с Android недостаточно места, и если вы используете 4 или 5 Гб облачного пространства, вам, в действительности, не требуется копировать все эти файлы на устройство. Но сейчас мне это необходимо. Но как подсказал один из читателей предыдущей статьи, можно попробовать приложение Syncthing. Я его попробую. Есть много работающих вариантов для случая, когда вы сохраняете данные на своем собственном сервере, что, конечно, является замечательным решением.
С моим исходным кодом другая история. Она исключительно проста: я пользуюсь git. Некоторые из моих клиентов пользуются системой SVN, и это также хорошо работает. В некоторым местах этот подход работает медленно, но мои данные со мной. Но, некоторые из данных в настоящее время хранится на сторонних серверах, принадлежащих Dropbox, с чем я должен был смориться. Теперь о приложениях, работающих на устройствах.

Мобильные приложения

Первоначально, я действительно хотел найти нативные приложения для Android. Это было обусловлено одной простой причиной: в тот момент у меня был только один планшет, 7-дюймовый Nexus 7 2013, и его экран маленький. На таком экране было слишком громоздко дистанционно подключаться к серверу с помощью VNC или RDP. Но, что еще хуже, попытки что-либо указать или на что-либо нажать с при использовании VNC быстро становилось просто кошмаром. Во многих приложениях VNC требуется, чтобы я правильно нажимал на крошечную кнопку на экране. У меня это не получается. В конечном итоге я нашел хорошее решение для дистанционного доступа, но первоначально я действительно хотел бы пользоваться нативными приложениями, поскольку они просто лучше работали на планшете с той точки зрения, что они лучше обрабатывали обычные нажатия на экран и другие жесты.
.
Но, несмотря на то, что ими было удобно пользоваться, у них были и проблемы. Во-первых, приложения, предназначенные для обработки текстов, не поддерживали форматы Open Office и работали только с форматами Microsoft, хотя в целом многие из них были действительно неплохими приложениями. Для большинства работ это не проблема, поскольку многие из моих клиентов используют форматы Microsoft.
Мне удалось найти одно приложение под названием AndrOpen Office. Это приложение было выпущено совсем недавно и на тот момент было довольно неуклюжим. С тех пор, разработчик добился значительного прогресса и оно весьма впечатляет. Это полный порт OpenOffice для Android. Оно работает на виртуальной машине, портированной на процессор ARM, и такая концепция работает очень хорошо. Но вне зависимости от того, насколько хорошо или плохо работает это приложение, пользоваться им на моем маленьком 7-дюймовом планшете было трудно по той же самой причине, что и VNC: в приложении используется традиционное для настольных компьютеров раскрывающиеся меню, и им чрезвычайно трудно пользоваться на маленьком планшете. Но на планшете большего размера с клавиатурой и мышью, его использование вообще не вызывает проблем. И теперь, когда у меня уже есть такой планшет, я бы мог снова им пользоваться, если бы смог заставить его работать с Dropbox.
Помните, что я рассказывал ранее об отсутствии в Dropbox автоматической синхронизации для Android? Если устройство с Android используется в течение всего дня, то это будет причиной постоянных проблем. Вы должны сначала загрузить файлы и затем сохранить их локально в устройстве, а только потом открыть их. Затем, когда вы закончите их редактировать, вы должны вернуть их обратно в Dropbox. Такой вариант может быть для некоторых приемлем, но для меня с моей новой жизнью с переходами между устройствами, он просто как нож в спину. Поэтому все мои усилия по использованию различных нативных программ, предназначенных для обработки текстов, закончились полным провалом.
На тот момент я попал в безвыходную ситуацию. Пользоваться VNC действительно невозможно из-за крошечного экрана. Но также не работает на планшете и сочетание нативных текстовых процессоров и клиентского приложения Dropbox. Тогда я понял, что единственный способ добиться, чтобы все работало, это в любом случае пользоваться VNC и сделать две вещи: во-первых, настроить сервер Linux так, чтобы я мог использовать VNC на любом устройстве. А во-вторых, найти для Android хорошую клиентскую программу VNC, даже если это будет сделать чрезвычайно сложно.
Для меня слишком трудно пытаться попасть на кнопку или перемещать курсор на маленьком экране. Для вас это, может быть, и не сложно, но, что касается меня, а мне уже почти 50 лет, то это сделать не так то просто. В самом деле, мне нужно было найти что-нибудь другое, чтобы я мог управлять мышью с моего планшета. После дополнительных поисков оказалось, что есть и другие варианты. Как я уже кратко упомянул в предыдущей статье, в некоторых клиентских программах VNC под Android для управления мышью используется стиль трекпада. Он представляет собой следующее.
Когда вы проводите пальцем по экрану влево, мышь перемещается влево. Перемещение пальца определяет направление, в котором движется мышь, а не место, т. е. точно также, как и у трекпада на ноутбуке. И дополнительный бонус: вы можете на экране VNC увеличивать масштаб изображения. Но раздражает то, что, как я обнаружил, в некоторых VNC-приложених с надоедливыми всплывающими окнами с элементами управления происходят странные вещи — в них нельзя управлять масштабированием всплывающих окон и экран выглядит неаккуратно, а для некоторых случаев единственный способ набрать текст — это открыть маленькое всплывающее окно для ввода с клавиатуры. Вы должны набрать строку, а затем нажать на кнопку ввода и весь текст должен быть отправлен на сервер VNC. Для набора кода и документов это определенно НЕ ГОДИТСЯ.
Но мне удалось найти несколько вариантов, которые работали хорошо. Это мой любимый Remotix. У него есть бесплатная версия и несколько платных версий, зависящих от типа сервера, к которому вы подключаетесь. В конечном итоге я нашел единый вариант для входа как в Linux через VNC, так и в Windows через RDP.
Если вы пользуетесь IOS, то одним из действительно хороших вариантов является приложение JumpDesktop. Мне на самом деле понравилось то, что это лучшее приложение для iOS, но в нем в версии для Linux нет управления мышкой в стиле трекпад, хотя в версии для IOS такая возможность есть. Убедитесь в том, что вы попробовали различные варианты. Может быть вам подойдет просто нажатие на экране, а не режим "трекпада" так, как это делаю я. Но вам, вероятно, нужен вариант, в котором поддерживается туннелирование SSH. А, может быть, и наоборот: приложение JuiceSSH, о котором я расскажу позже, требует создавать туннель SSH прямо на вашем устройстве. Но приложение Remotix, которым я пользуюсь, может самостоятельно создавать туннелирование SSH.
Так что на данном этапе мне стало понятно, что у меня будет возможность использовать свои серверы Linux с моего планшета. На тестирование я потратил весь день, сгорбившись над моим 7-дюймовым планшетом и крошечной клавиатурой Bluetooth, сделанной специально для планшета. Это было катастрофой. В конце концов все закончилось ужасной головной болью из-за напряжения глаз (смотрите замечание о моем возрасте, приведенное ранее), а клавиатура была настолько мала, что я едва мог на ней печатать.
Поэтому я купил новую клавиатуру, клавиатура bluetooth производства Logitech, которая сделана специально для устройств с системой Android. Клавиатура работала великолепно, но экран был все еще слишком мал. Моя задача состояла в том, что если мне придется уехать из города на несколько дней, то я бы хотел иметь возможность оставить дома свой ноутбук и взять только планшет и клавиатуру, причем экран планшета должен просто подходить для моей работы. Поэтому я приобрел 10-дюймовый планшет, с которым я работаю. В комплекте с планшетом я получил резиновую клавиатуру, к которой я привык, хотя с ним также будет работать моя клавиатура bluetooth. Я также могу пользоваться мышью bluetooth (убедитесь в том, что клиентская прогамма VNC, которую вы выберите, использует мышь), или использовать трекпад, встроенный в стильную клавиатуру, либо могу просто использовать экран так, как это я описал выше. И весь этот набор имеет малый вес, с ним легко путешествовать и я могу смотреть на него весь день. Заряда батареи хватает приблизительно на 10 часов. Нормально. А если я не хочу тащить весь этот набор со мной (например, вечером, если у клиента что-то срочное), я могу просто взять меньший планшет Nexus 7, а также использовать экранную клавиатуру и VNC. Такой набор не столь большой , но если мне потребуется, то он позволит мне что-нибудь сделать.

Внешний вид интерфейса точно такой же как и на мощной машине с Linux

Итак есть VNC с Dropbox для документов и с git для исходного кода. В следующей статье я расскажу вам , как я настроил серверы Linux так, чтобы можно было получать к ним доступ отовсюду, даже с моей настольной рабочей станции. Также хочу заметить, что я изучил необычный вариант установки Ubuntu прямо на моем планшете (который не подходит - слишком медленный!). И расскажу как можно использовать устройства с различными размерами экранов. Все работает быстро, даже с моим мобильным роутером 4G mifi.
Когда я подключаюсь к серверу Linux с планшета с присоединенной клавиатурой, то внешний вид интерфейса точно такой, как будто я запускаю мощную машину Linux, а не просто планшет с Android! Как-то один парень болтал со мной и, сказав, что он IT-гуру, спросил, что из себя представляет мой компьютер. Я сказал ему, что это планшет с Android. Он взглянул на экран и ушел, бормоча, что я, очевидно, путаю, и что это нетбук с Chrome. Я просто рассмеялся. Он, на самом деле, не знал, что у меня есть клиентская программа, которой нужны возможности распараллеливания для работы с несколькими тяжело нагруженными многоядерными приложениями и для этого я запускаю сервер с 32-ядерным Intel Xeon, причем делаю это с моего 10-дюймового экрана Android, и это выглядит так, что все это работает тут же, хотя, на самом деле, все это работает в сервисе Amazon Web.
И я не отказался полностью от нативных приложений. Я иногда использую их для редактирования файлов. Есть несколько довольно хороших редакторов исходного кода. В предыдущей статье я упоминал о приложении DroidEdit. Я пользуюсь им в течение нескольких лет, но оно разочаровывает следующим: оно плохо справляется с большими файлами, например, такими, размер которых больше 10 000 строк. На загрузку таких файлов требуется много времени, а прокрутка по ним происходит очень медленно. Мой Nexus 7 обладает очень хорошим процессором и хорошо работает с графикой, но это не помогает. Для таких огромных файлов просто тратятся все ресурсы даже в том случае, когда я выключаю подсветку синтаксиса. Но поскольку моя предыдущая статья вышла пару недель назад, я обнаружил еще один Android-редактор, который прекрасно работает. Он написан парнем, который также обратил внимание на то, что все существующие редакторы, как правило, медленные, и решил написать свой более быстрый редактор. Он сделал это, и этот редактор называется Quick Edit. Есть бесплатная версия редактора с рекламой и платная версия без рекламы. Я купил платную версию с учетом того, что его цена меньше стоимости молочного коктейля из МакДональдс.
Хотя, если вы собираетесь перейти на нативный текстовый редактор, вам потребуется проанализировать, подходит ли он тому, как вы работаете с вашим исходным кодом. Есть много различных вариантов и вы, в зависимости от того, что вам нужно, должны поискать в магазинах приложений и опробовать различные варианты. В некоторых из них есть доступ по SSH, благодаря чему с их помощью можно через SSH получать дистанционный доступ на сервер, читать с сервера файлы, их редактировать, а затем сохранить их обратно на том же самом сервере. В приложении DroidEdit все это также есть, и есть также возможность работать с git. Но я не мог заставить его работать с сервером git, работающим на одном из моих серверов, хотя с других компьютеров я могу получить к нему доступ. Почему, я не знаю, но говорят, что это приложение хорошо работает с GitHub.
Еще одно нативное мобильное приложение, которым я пользуюсь регулярно, это - JuiceSSH. Действительно, есть много различных вариантов нативных инструментов для SSH; это всего лишь один из многих. Какой бы вы не взяли, убедитесь в том, что он работает с ключами SSH. Если вы новичок в этих вопросах, в том числе того, что касается серверов Linux, то вам действительно потребуется настраивать серверы, для чего необходима аутентификация на основе ключей SSH. Хорошим введением, описывающим такую настройку, будет статья в блоге DigitalOcean. Приложения с SSH удобны в случае, когда я у вас медленное соединение. Тогда я просто подключаюсь через SSH и пользуюсь моим любимым редактором Vi. Всюду командная строка, а не графический интерфейс, как в старые добрые времена, когда я был молод.

Заключение

На сегодня — это все. У меня, наконец, есть вариант настройки, который работает. И удивительно то, что почти все, чем я пользовался, не требует разлочивать устройство. Я разлочил свое устройство только потому, что я пользуюсь некоторыми другими приложениями, для которых требуются права пользователя root, но для описанных выше вариантов настройки это не нужно. В третьей и заключительной части я расскажу, как именно я настраивал серверы. Я пользуюсь двумя различными облачными хостами - Amazon и DigitalOcean, а иногда и третьим - Rackspace. Поделитесь в комментариях своим мнением о этом.
Все же я хотел бы иметь возможность использовать нативное приложение для обработки текстов; пропускная способность моего канала 4G ограничена и, когда я путешествую, я постоянно пользуюсь VNC. Мое решение еще далеко от совершенства, и я хотел бы услышать ваше мнение о том, как мы можем вместе все это улучшить. А для тех, кто высказал свою озабоченность, я сообщаю, что у меня есть время для отдыха и на общение в кругу семьи. Я каждый день до полудня отсыпаюсь и бегаю по пять километров три раза в неделю. Это вопрос баланса. С большими возможностями приходит и большая ответственность.

Комментариев нет:

Отправить комментарий