Все мы медленно, но верно переходим к работе во Всемирной паутине, забывая привычные настольные приложения. Современный мир немыслим без Gmail, YouTube, GDocs и огромного количества веб-сервисов, заменяющих нам обычные программы. Но так ли нужен веб-браузер, чтобы пользоваться «облачными» приложениями?

 

Введение

Какой должна быть операционная система, полностью завязанная на «облачные» приложения? Такой, как ОС-браузер, например Google Chrome OS? Или, может быть, такой, как пресловутый Plan9, не делающий различий между локальными и сетевыми ресурсами? Нет, скорее всего, она будет представлять собой нечто среднее между ними, то есть операционку, позволяющую «ходить в „облака“» и тем и другим способом.

Подвижки в создании подобной ОС начались уже давно. Те же стандартные окружения рабочего стола для Linux уже научились синхронизировать данные пользователя с «облачным» хранилищем (Ubuntu One), проигрывать видеозаписи из YouTube в окне стандартного медиапроигрывателя (Totem, например, умеет это уже несколько лет), выводить информацию с веб-страниц на рабочий стол (виджеты KDE и Google Gadgets) и использовать множество других способов интеграции с веб-сервисами. В этой статье я расскажу, как еще более расширить границы соприкосновения веба и обычного Linux-десктопа. Мы рассмотрим множество приложений для работы с «облачными» сервисами, попробуем достучаться до «облаков» из командной строки и превратим файловую систему в инструмент для работы с «облаками».

Tyrs — аскетичный Twitter-клиент для консоли
Tyrs — аскетичный Twitter-клиент для консоли
 

Клиенты «облачных» сервисов

С веб-сервисами не всегда удобно работать из окна веб-браузера. Тот же Twitter, например, на широком экране занимает максимум полстраницы, а вытаскивать окно Твиттера из браузера, подгонять размер этого окна и следить за тем, чтобы случайно его не закрыть, долго и неудобно. К тому же панель навигации будет мешать. Гораздо круче посадить Твиттер в трей, чтобы он показывал новые сообщения в виде всплывающих подсказок. Как это сделать? Да просто воспользоваться одним из Twitter-клиентов. Почти для каждого популярного веб-сервиса для Linux есть созданный энтузиастами клиент. Среди Twitter-клиентов наибольшей популярностью пользуется Gwibber, который, помимо Твиттера, поддерживает еще и Identi.ca, StatusNet, Facebook, Flickr, Digg, FriendFeed и Qaiku. Приложение это, надо сказать, на любителя, так как оно очень тяжеловесное и зависит от различных Gnome-библиотек. Поэтому ценителям аскетизма я бы порекомендовал посмотреть в сторону Pino или Hotot. И тот и другой доступны в любом дистрибутиве, так что установить их и попробовать в деле не составит труда. Особого внимания также заслуживает TweetDeck — стильный Twitter-клиент, который особо ценят пользователи маков. Одна беда — он требует Adobe AIR, что неприемлемо для многих юниксоидов. Поклонники IM-клиента Pidgin должны обязательно обратить внимание на Twitter-плагин для своего фаворита (он так и называется — pidgin-twitter). Это даже более удобный и удачный вариант, нежели полноценное приложение: всё в одном месте и никаких лишних окон. Поклонники консоли также не останутся без вкусного. В репозиториях дистрибутивов предостаточно Twitter-клиентов с интерфейсом командной строки или ncurses. Один из самых простых и удобных написал всем известный Linux-разработчик Greg Kroah-Hartman. Этот клиент называется bti и может быть использован, например, так:

$ echo "My current uptime is `uptime`" | bti

Однако, чтобы начать использовать это маленькое чудо, придется поизвращаться с OAuth-аутентификацией, которую использует Твиттер. Для начала в разделе разработчика приложений Твиттера необходимо получить Consumer Key и Consumer Secret и вписать их в конфиг bti:

$ vi ~/.bti

# Consumer key
consumer_key=cZy8DdioswAfu3LJYg6E2w
# Consumer secret
consumer_secret=fnIGGU0T12mMWKjmThUdSeKN32NLWfmnwapwubVQ

Далее следует запустить bti, который напечатает на экране адрес страницы, на которой ты сможешь получить PIN. Его необходимо ввести в ответ bti, после чего на экран будут выведены accesstokenkey и accesstokensecret, которые точно так же придется добавить в конфиг. Далее bti должен заработать, и с его помощью можно будет отправлять сообщения прямо из командной строки. Для YouTube также существует несколько интересных клиентов, как графических, так и консольных. Пользователи среды Gnome получают один из таких клиентов в комплекте с плеером Totem. Пользователи KDE4 для тех же целей могут использовать плеер minitube, позволяющий просматривать, искать видео и составлять плей-листы. Программа не зависит от библиотек KDE, поэтому подойдет также приверженцам более экзотических графических сред. Особого внимания заслуживает консольный скрипт youtube-viewer, позволяющий искать и просматривать видео с помощью штатного MPlayer.

chrome-to-desktop

 

Google auth

Недавно Google изменил метод аутентификации сторонних приложений, поэтому для каждой программы (скрипта), работающей с аккаунтом Google, придется создать отдельный пароль. Для этого заходим на страницу, далее выбираем опцию «Авторизация приложений и сайтов -> Изменить», вводим пароль и задаем новый пароль с помощью специальной формы в конце страницы.

Просто запусти youtube-viewer, введи поисковый запрос, и на экране появится пронумерованный список из двадцати первых совпадений. После ввода номера нужного ролика он незамедлительно начнет проигрываться в полноэкранном режиме. Скрипт можно использовать для получения списка самых популярных роликов за день (флаг ‘-t’), списка самых популярных роликов за всё время (‘-a’), поиска плей-листов (‘-p’) и фильмов (‘-M’). Для указания предпочтительного качества видео предусмотрены флаги ‘-2’, ‘-3’, ‘-4’, ‘-7’, ‘-1’ (240p, 360p, 480p, 720p и 1080p соответственно). Также с помощью флага ‘-sub=ru’ можно переключить MPlayer на использование русских субтитров. Чтобы скрипт выводил больше результатов поиска (50 вместо 20), используй флаг ‘-m’. Скрипт youtube-viewer может стать настоящим открытием для любителей смотреть ролики с YouTube. Найти и запустить видео с его помощью можно за считанные секунды, а MPlayer обеспечивает гораздо более высокое качество картинки. Скрипт особенно актуален при просмотре HD-видео, с которым flash-проигрыватель справляется плохо, а MPlayer гоняет его без какой-либо значительной нагрузки на процессор. Стоит отметить, что сама скорость загрузки видео также повышается (это проверено экспериментальным путем, но с чем связано, неясно). В качестве альтернативы youtube-viewer можно использовать videotop, имеющий примитивный ncurses-интерфейс с vi-подобным управлением. Однако он имеет колоссальный недостаток: требует полной загрузки видео до начала просмотра. Что касается других сервисов поискового гиганта (я сконцентрировался на них из-за популярности, а не личных пристрастий), то здесь можно выделить несколько интересных приложений. Во-первых, это множество самых разнообразных «уведомлялок» для Gmail, лучшими из которых являются CheckGmail и Gmail Notifier. Обе выполняют одну простую задачу — сидят в трее и выводят сообщение при получении письма. По клику происходит переход на сайт Gmail. Аналогичная штуковина для KDE4 называется kdeplasma-gmailnotifier. Она, в отличие от двух упомянутых выше программок, может висеть не только в трее (а точнее, на панели), но и на рабочем столе и вообще где угодно, куда KDE позволяет засунуть плазмоид. Также есть полноценные клиенты для работы с почтовой службой. Из наиболее интересных я бы отметил консольный sup, почти полностью копирующий интерфейс легендарного почтового клиента Mutt.

Sup — Mutt-подобный клиент для Gmail
Sup — Mutt-подобный клиент для Gmail

Среди утилит командной строки можно выделить скрипт translator, который просто переводит слово/фразу/предложение на указанный язык, и cliweather, печатающий текущую погоду для указанного места земного шара. Оба очень просты в использовании и идеально подходят для интеграции в различные скрипты или, например, создания уведомлений с помощью notify-send:

$ notify-send Погода `cliweather ИНДЕКС-ГОРОДА`

Команду можно прописать в скрипте и повесить на горячую клавишу или включить в задание cron (хотя, конечно, удобнее использовать один из множества апплетов для отображения погоды в трее).

Нельзя не оставить без внимания и набор утилит под названием GDataCopier, предназначенный для работы с Google Docs. Пакет включает в себя пять простых утилит: gls для просмотра списка документов, gcp для копирования документов с локальной машины и на нее, gmkdir для создания каталогов и утилиты grm и gmv для удаления и перемещения документов соответственно. Пользоваться всем этим добром просто и приятно. Например, для просмотра всех документов из папки «Работа» делаем так:

$ gls username@gmail.com:/docs/Работа

Для их экспорта в формате PDF на локальную машину — так:

$ gcp -f pdf username@gmail.com:/docs/Работа/* /tmp/

Для создания каталога — так:

$ gmkdir username@gmail.com:/doc/Новая_папка

Конечно же, нельзя забывать и о контрольном скрипте GoogleCL, предназначенном для работы с такими сервисами Гугла, как Blogger, «Календарь», «Контакты» (Gmail), Google Docs, Picasa и YouTube (только добавление видео). Мы уже писали об этой утилите в одном из прошлых номеров, поэтому я не буду повторяться и просто приведу несколько примеров ее использования.

  1. Публикация поста в блоге с помощью Blogger:$ google blogger post —blog ‘Linuxoid’ \ —title ‘Я в GoogleCL!’ —tags ‘linux, cli’ \ ‘Открыл для себя GoogleCL, bla-bla, bla’
  2. Добавление события в календарь:$ google calendar add ‘День, когда земля остановилась’
  3. Добавление контакта:$ google contacts add ‘Евгений Зобнин,zobnin@gmail.com’
  4. Редактирование документа Google Docs (в дефолтном редакторе, имя которого указано в переменной окружения EDITOR):$ google docs edit —title «Список покупок»
  5. Добавление нового альбома в Picasa (и заливка фоток):$ google picasa create —title «Мои фотки» \ ~/photos/*.jpg
  6. Публикация видео на YouTube:$ google youtube post —category Comedy ужос.avi

Во время первого обращения к сервису он попросит ввести Google-логин (адрес почты на Gmail) и откроет страничку в браузере, на которой необходимо подтвердить права GoogleCL на удаленное управление. При последующих запусках сервиса ничего вводить и подтверждать не нужно.

Sup — Mutt-подобный клиент для Gmail
Sup — Mutt-подобный клиент для Gmail

 

Установка Google Docs FS в Ubuntu

$ sudo add-apt-repository ppa:doctormo/ppa
$ sudo apt-get update
$ sudo apt-get install google-docs-fs

 

Превращаем веб-сайт в программу

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

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

Youtube-viewer — консольный скрипт для просмотра роликов с YouTube
Youtube-viewer — консольный скрипт для просмотра роликов с YouTube

Например, пресловутый Google Chrome уже давно имеет в своем составе механизм превращения веб-сайтов в приложения. Достаточно открыть нужный веб-сайт, перейти в пункт «Меню -> Инструменты -> Создать ярлыки приложений…», выбрать место размещения ярлыка (рабочий стол и/или меню приложений), и — вуаля! — на рабочем столе появится ярлык, по клику на котором в обособленном окне откроется сайт без ненужных обвесок в виде меню браузера и строк ввода/поиска. То же самое, причем даже из командной строки, можно сделать и с приложениями, установленными с помощью Chrome Web Store (по клику правой кнопкой мыши):

$ chromium --app=http://gmail.com

Достаточно интеллектуальный менеджер окон сохраняет положение и размеры окна перед закрытием и восстанавливает его на прежнем месте при следующем запуске. Функция веб-приложения есть и в браузере Firefox. Здесь всё еще проще: достаточно перетащить favicon сайта на рабочий стол, и ярлык появится сам собой.

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

Браузер surf основан на движке WebKit, не имеет интерфейса и управляется с помощью клавиатурных комбинаций. Это самый легковесный и быстрый из всех браузеров, основанных на полноценном HTML-движке, а потому он идеально подходит для запуска приложений. Самый простой вариант его запуска выглядит так:

$ surf http://gmail.com

На экране появится интерфейс Gmail в абсолютно голом и чистом виде. Браузер добавит в него только узенькую полоску загрузки, которая отобразится в нижней части окна. Чтобы задать нужные параметры окна сразу во время запуска, можно воспользоваться утилитой wmctrl:

#!/bin/sh
surf http://gmail.com
wmctrl -r surf -e '0,50,50,400,300'

Скрипт откроет Gmail в окне surf, сделает размер окна равным 400 x 300 и разместит его в левом верхнем углу, с отступом 50 слева и сверху. С помощью среды рабочего стола скрипт легко превратить в ярлык и поместить на рабочем столе.

 

INFO

Просмотр видео в YouTube с помощью подручных средств:

$ mplayer `youtube-dl -g http://www.youtube.com/watch?v=ID-ролика`

Для отключения файловых систем используем команду fusermount:

$ fusermount -u /путь/до/каталога

 

Монтируем веб-сервисы как файловые системы

Иногда удобнее не использовать специальные клиенты, а монтировать веб-сервисы в виде простой файловой системы, где можно бродить с помощью файлового менеджера (например, в поисках интересного видео на YouTube), создавать и удалять файлы (например, для управления почтой) и использовать разнообразные перенаправления ввода-вывода. Для тех же сервисов Гугла существует четыре таких виртуальных файловых системы на основе FUSE: YoutubeFS, GDataFS, GmailFS, Google Docs FS (есть еще goofs, но это полузаброшенная Java-поделка). Также в Сети можно найти flickrfs, предназначенную для загрузки изображений на flickr.com и MetaWeblogFS. С ее помощью можно постить в блоги прямо из командной строки.

Кратко пройдемся по всем файловым системам и попробуем разобраться, как их использовать. Итак, YoutubeFS — файловая система для доступа к YouTube. Этой системы нет в большинстве дистрибутивов, однако для ее установки достаточно скачать с сайта тарболл и распаковать его. Пользоваться так:

$ ./youtubefs.py username@gmail.com /путь/до/каталога

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

$ gdatafs /путь/до/каталога username@gmail.com пароль

Файловая система GmailFS предназначена для монтирования почтового ящика Gmail. Она работает на основе протокола IMAP, поэтому перед ее использованием придется включить его поддержку в настройках сервиса (Настройки -> Пересылка и POP/IMAP -> Включить IMAP). После этого необходимо создать конфиг /etc/gmailfs/gmailfs.conf следующего содержания:

# vi /etc/gmailfs/gmailfs.conf

[account]
username = usernamegmail.com
password = пароль

[filesystem]
fsname = linux_fs_4

[logs]
level = INFO
logfile = ~/gmailfs.log

Затем нужно примонтировать файловую систему:

$ ./gmailfs.py -o allow_root none /путь/до/каталога

Теперь перейдем к Google Docs FS (code.google.com/p/google-docs-fs/). Эта файловая система предоставляет доступ к документам Google Docs. Использовать ее так же просто, как и все остальные ФС в нашем обзоре:

$ gmount /путь/до/каталога username@gmail.com

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

$ gumount /путь/до/каталога
 

Выводы

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

 

Евгений Зобнин

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Оставить мнение

Check Also

Android под колпаком. Как раскрывают кейсы взлома мобильных устройств

Личная и деловая переписка, деньги, фотографии, заметки, планы на будущее и удаленный дост…