Все мы медленно, но верно переходим к работе во Всемирной паутине, забывая привычные настольные приложения. Современный мир немыслим без 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 /путь/до/каталога
 

Выводы

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

 

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

Check Also

Хакер ищет авторов. Читатель? Хакер? Программист? Безопасник? Мы тебе рады!

Восемнадцать лет мы делаем лучшее во всем русскоязычном пространстве издание по IT и инфор…