Дано: три компьютера (две штуки — под управлением FreeBSD и еще на одном стоит Windows), смартфон , планшет , а также парочка виртуальных машин. Задача: синхронизировать между ними почту, RSS-ленту, закладки, файлы и тд. Желательно использовать для этого поменьше программ и сервисов.
1. Почта и RSS
Тут все довольно просто — храним почту на GMail , а RSS читаем через Google Reader . Лично я делаю именно так. Не нравится Гугл, пожалуйста — почта на Яндексе , RSS читаем через Яндекс.Ленту . Только нужно учесть, что в последнем случае не гарантируется удобство чтения почты/rss с планшета под управлением Android. Google как-то хитро оптимизирует свои веб-страницы для андроид-планшетов, чтобы эти страницы было удобно разглядывать на экране с маленькой диагональю.
Как альтернативный вариант, можно использовать браузер Opera. В нем есть встроенная rss-читалка, почтовый клиент и синхронизация всего этого хозяйства. Только я не уверен, что все перечисленное есть в Opera Mobile и Opera Mini. Также для синхронизации почты годится протокол IMAP.
2. Закладки и заметки
В свое время я пробовал и БобрДобр , и Delicious , и Google Bookmarks , и всякие браузерные плагины для этих сервисов. Ничто из перечисленного не пришлось мне по душе.
Теперь я синхронизирую закладки через Opera. Вообще в последнее время у меня сильно изменилось отношение к этому браузеру. Помимо синхронизации закладок, он также производит синхронизацию истории веб-серфинга, заметок и экспресс-панели. Последняя, если кто не в курсе, представляет собой начальную страницу с превьюшками избранных сайтов. Очень удобно!
Правда, в силу привычки, заметки я продолжаю накапливать на GMail с тем, чтобы позже выложить их в этом блоге. Кстати, блог — прекрасное место для хранения заметок и полезных ссылок, инфа 100%.
Если нравится Firefox — в четвертой версии появился Firefox Sync. Не знаю, поддерживает ли он заметки, так что на всякий случай имейте в виду notebook.google.com . Почему-то об этом сервисе мало кто знает.
3. Синхронизация файлов
Первое, что приходит на ум — использовать очень небезопасный Dropbox. Не знаю, радоваться этому или нет, но в настоящее время не существует версии Dropbox под FreeBSD (хотя у сервиса имеется неплохой веб-интерфейс, а на ГитХабе был найден соответствующий форк ). Несмотря даже на то, что на офсайте есть голосование по поводу его портирования под Фряху с 2647 голосами «за» (на момент написания этих строк). Проголосуйте, может когда-нибудь сделают.
А пока можно производить синхронизацию файлов с помощью sshfs. Это модуль для FUSE , позволяющий получить доступ к удаленной файловой системе по SSH. Его установка и настройка довольно тривиальны.
Если FUSE раньше не был установлен, дописываем в /etc/rc.conf:
… и запускаем FUSE:
Самое главное при использовании sshfs — это монтировать файловую систему с правильными флагами:
alias mntssh sshfs -o uid = 1001 , gid = 1001 ,allow_other,follow_symlinks,reconnect,intr, IdentityFile = / home / eax / .ssh / id_rsa user @ example.ru:example.ru / htdocs / secret-place / / home / eax / sshfs /
Обратите особое внимание на использование identity file и флага «intr». Без этих настроек у вас могут возникнуть проблемы в случае падения сети или недоступности example.ru. На самом деле, они возникнут по-любому (файлы будут временно недоступны), но хотя бы никакие приложения при этом не повиснут. Если вдруг по вине sshfs все-таки что-то повисло, а у меня такое однажды было, попробуйте прибить все процессы с именем «sshfs».
Примечание: См также заметку про резервное копирование с помощью SSH . Там рассказано про создание identity file и утилиту rsync. Последняя, возможно, подойдет вам больше, чем sshfs.
К нашей великой радости, sshfs портирован под Windows . Сначала качаем и устанавливаем «Dokan Library». На самом деле, это никакая не библиотека, а служба. Затем качаем с той же страницы «Dokan SSHFS». Это GUI приложение, так что с ним все просто.
Как вы понимаете, example.ru/htdocs/secret-place/ не плохо бы сделать доступным по HTTP, включив автоиндекс, а также ограничив доступ паролем. В первую очередь нужно залезть в панель управления хостингом (или как вы там управляете сервером) и убедиться, что autoindex_module включен. Затем создаем в каталоге secret-place файл .htaccess следующего содержания:
AuthUserFile /home/user/example.ru/htdocs/secret-place/.htpasswd
AuthType Basic
AuthName «Password Required»
Require valid-user
В том же каталоге создаем файл .htpasswd с помощью соответствующей утилиты или скрипта . Вбиваем адрес в браузере, проверяем.
Возможно, вам захочется выкладывать некоторые файлы на всеобщее обозрение. Сделать это можно, создав символьную ссылку на нужный каталог (по понятным причинам, лучше разместить его выше, чем secret-place) и, опционально, положив в него .htaccess, содержащий следующее:
Options -Indexes
Также с помощью символьных ссылок можно управлять по sshfs содержимым каких-то специальных каталогов. Например, можно создать симлинк на каталог с картинками, приатаченными к постам в блоге. См также мою памятку по .htaccess (пункт 6).
4. Свое онлайн-радио?
У меня на хостинге недостаточно места для хранения музыки, но в теории можно сделать свой онлайн-плейлист, используя jPlayer . Это jQuery плагин для проигрывания аудио и видео. Удобен в первую очередь тем, что в зависимости от возможностей браузера, он предлагает использовать либо Flash ( лучи ненависти! ), либо HTML5. Наброски проигрывателя: http://hpaste.org/79987 .
Содержимое плейлиста (строка 140) можно генерировать динамически. Самая большая подстава в том, что Opera 11 и Firefox (проверял на версиях 3.6 и 4) не умеют воспроизводить mp3 по сети. Во всяком случае, без флеш-плагина. В свою очередь, формат ogg не поддерживают IE 8/9 и Safari 5. Надо отдать должное Chrome — он понимает и mp3 и ogg.
Таким образом, нам предстоит непростой выбор — обязать пользователей устанавливать Flash или хранить на сервере музыку в двух форматах. Как альтернативный вариант, можно использовать один формат, который при необходимости динамически перекодировался бы в другой (возможно, с кэшированием):
ffmpeg -i in.mp3 -acodec libvorbis out.ogg
# перекодируем ogg в mp3 с cbr 128 kbps
ffmpeg -i in.ogg -acodec libmp3lame -ab 128k out.mp3
# перекодируем ogg в mp3 с vbr (чем больше aq, тем хуже качество)
ffmpeg -i in.ogg -acodec libmp3lame -aq 0 out.mp3
Представьте, как круто — приходите в гости к друзьям, запускаете браузер и вся ваша музыка — как на ладони. Правда, я должен признать, что зарегаться Вконтакте и замутить там плейлист намного проще. А для прослушивания плейлиста без Flash можно скриптик небольшой набросать.
5. Ссылки по теме
Эти материалы могут вам пригодиться:
- http://spidey01.blogspot.com/2008/03/sshfs-on-freebsd.html — здесь я узнал про sshfs;
- http://www.jplayer.org/latest/developer-guide/ — Flash не умеет воспроизводить mp3 с vbr;
- http://www.smackfu.com/stuff/programming/shoutcast.html — описание протокола SHOUTCast/IceCast;
- MP3::Info — годный perl-модуль для манипуляций информацией о mp3 файлах;
Как всегда, я буду рад любым вашим комментариям по теме синхронизации данных.