LXF133:libferris
|
|
|
- libferris Управляем содержимым web-сайтов через интерфейс файловой системы
Содержание |
libferris: Добавим сервисы
- Копируйте и редактируйте контент Facebook, Youtube и Vimeo, не запуская браузер. Бен Мартин покажет, как это сделать.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Месяц назад мы познакомились с libferris и узнали, как с помощью этой библиотеки загружать изображения на Flickr прямо с рабочего стола Linux. Во второй части мы расширим наши охват и поговорим о других сервисах, таких как Facebook, видеохостинги и Google Docs, и о передаче данных напрямую в сеть.
Если просмотреть содержимое URL-адреса facebook:// с помощью утилиты, связанной с libferris (или через Fuse), вы увидите два каталога и файл. Файл status содержит ваш текущий статус в Facebook, который можно обновить, записав туда данные. Так как на вашей странице в Facebook отображаются ссылки и статусы ваших друзей, расположение вашего статуса в файле делает саму файловую систему удобным средством для микроблоггинга.
$ fls -1 facebook:// contacts recent status $ fcat facebook://status Simone is home! $ echo Эй, кто купит обезъяну? | ferris-redirect -T facebook://status
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
В каталоге contacts находятся файлы виртуальных карточек vCard всех ваших друзей в Facebook. Содержимое этого (и многих других) каталогов в libferris можно просмотреть командой ferris-ls -0. Опция -0 велит libferris показывать данные, которые библиотека считает интересными, вместо обычного времени изменения, размера, владельца и группы, которые покажет ls -l. В примере ниже я скрыл свои личные данные. Обратите внимание, что NNNNNNNNN будет заменено идентификатором каждого из ваших друзей в Facebook. В файле vCard будет находиться миниатюра контакта, но его телефон с помощью этого API получить нельзя, хотя на сайте Facebook он доступен.
</p> $ ferrisls -0 facebook://contacts/NNNNNNNNN.vcf John Doe , , NNNNNNNNN ...
Наконец, в каталоге facebook://recent находятся последние записи всех ваших друзей в той форме, в какой вы видите их на своей странице в Facebook. В дальнейшем планируется поддержка загрузки фото- и видеоальбомов.
Видеохостинги
Наряду с Facebook, libferris 1.3.6 поддерживает выгрузку видео-роликов на Flickr, Vimeo и YouTube. Для двух последних сайтов пока поддерживается только выгрузка, но в будущем, вероятно, появится API для работы с друзьями, списками, поиском и комментариями, вроде того, что сейчас предлагает Flickr API. Как и во Flickr API, было бы здорово иметь возможность изменять размер и формат видеоролика в процессе выгрузки.
Выгрузка файла на эти сайты сводится к его копированию в каталог upload. По ходу процесса вы увидите достаточно общий отчет о ходе передачи.
gfcp -av medium-test-video.mp4 vimeo://upload gfcp -av medium-test-video.mp4 youtube://upload
В дополнение к фотохостингам, в libferris недавно была добавлена поддержка GStreamer. На данный момент файловая система gstreamer:// может только захватывать данные, и вы должны сказать libferris, откуда и как это делать. Вы вписываете, какие виртуальные файлы вам нужны, в файл ~/.ferris/gstreamer.xml. Пример показан в коде ниже. Те, кому знаком GStreamer (LXF125 и LXF130), обратят внимание, что элемент <source> содержит обрабатываемый канал, который могла бы использовать команда gst-launch. Каждый XML-элемент велит libferris создать виртуальный файл, а элемент <source> сообщает, как использовать GStreamer для создания содержимого файла, когда этот файл считывается.
<gstreamer> <capture> <file name=”test.jpg”> <source> filesrc location=/tmp/medium-test-image.jpg ! appsink name=sink </source> </file> <file name=”n810.mpeg”> <source> tcpclientsrc host=myn810 port=5434 ! queue ! jpegdec ! ffenc_mpeg2video ! ffmux_mpeg ! appsink name=sink </source> </file> </capture> </gstreamer>
Когда вы читаете test.jpg, то просто получаете копию локального файла /tmp/medium-test-image.jpg. Стадии канала отделяются друг от друга восклицательным знаком, а последней стадией всегда должна быть appsink с именем sink. С другой стороны, если мы прочтем файл n810.mpeg, то получим содержимое web-камеры на нашем Nokia N810 в виде потока MPEG2.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
В результате, при настроенных на захват видео и изображений виртуальных файлах GStreamer можно «скопировать» данные с вашей камеры прямо в web-сервис. Копирование виртуальных файлов JPEG одним махом на web-сервисы протестировано; поддержка загрузки видео напрямую через gstreamer:// еще ожидается.
Файлы, созданные в gstreamer.xml, появляются в gstreamer://capture под теми именами, которые вы им дали. Поддержка пока ограничена файлами только-для-чтения, но в будущем планируется и поддержка записи в GStreamer.
Вы наверняка обратили внимание, что часто имеется каталог upload, позволяющий копировать файл на web-сервис. Это работает, потому что виртуальная файловая система позволяет создать файл в каталоге upload, и потом, когда вы получаете std::iostream для этого файла, выполняется HTTP-запрос к web-сервису. Когда вы записывает данные в этот поток, libferris продолжает отправлять ваш контент web-сервису.
Обычно компьютер может выдавать данные значительно быстрее, чем интернет-соединение способно их забрать, поэтому libferris время от времени должна просить приложение подождать. Принцип здесь тот же, что и при записи на медленный диск, в соответствии с архитектурой std::iostreams C++. Как только сетевой буфер очистится, отправив порцию данных web-сервису, libferris разрешит потоку принять еще. Эти игры в кошки-мышки позволяют клиенту libferris в любой момент времени знать примерный объем данных, отправленный web-сервису. Примерный – потому что, конечно, между потоком и сетью есть небольшой буфер, и у libferris всегда есть какие-то данные, которая она пытается выгрузить в сеть.
Обработка видео
Обработка видео для загрузки на web-сервисы сложнее. Если понять, что такое корректный JPEG-файл, нетрудно, то в случае с видео-роликом приходится принимать во внимание контейнеры для аудио- и видеокодеков. Многие сайты не принимают популярные открытые кодеки, что создает проблему с лицензированием ПО и патентами. Вероятно, будет добавлена поддержка загрузки видео с помощью специальных профилей перекодировки для MEncoder, так что пользователь сможет выбрать или обновить профили без необходимости что-то компилировать.
Данные на потоке
Так как данные передаются через поток ввода-вывода (iostream), в будущем должна появиться возможность скопировать данные с web-камеры прямо на сайт видеохостинга. Конечно, в определенный момент придется нажать Ctrl+C чтобы остановить загрузку. И тогда libferris следует знать, что вы сделали это, чтобы корректно закончить передачу данных по HTTP.
В первой части обзора мы говорили о трудностях в создании приложений с открытым исходным кодом, которые получают доступ к web-сервисам, таким как YouTube, Flickr и Google Docs. Теперь мы немного порезвимся с сервисами Google и посмотрим, как обстоят дела здесь. Сервисы Google в libferris находятся по адресу google://. В корне этой схемы вы видите docs, spreadsheets и youtube. Каталог youtube – то же самое, что и youtube:// в libferris – с точки зрения внутренней архитектуры, последнее лишь указывает на первое.
Как легко догадаться, в каталоге docs хранятся документы Google Docs, а в каталоге spreadsheets – таблицы Google Spreadsheets. Так как Google Spreadsheets – это тоже Google Docs, та же самая таблица будет доступна в обоих каталогах. Различие заключается в вариантах возможного взаимодействия с каталогами: каталог spreadsheets рассчитан на чтение и запись таблиц, их листов, ячеек и т. д. Каталог docs нацелен на полноценное взаимодействие с документом – например, на создание, замену и удаление целой таблицы.
Портим ячейки
В прошлой статье мы чуть-чуть коснулись каталога google://docs. Google Docs API включает поддержку для добавления данных в существующие текстовые файлы вместо их замены. Как и пример из первой статьи, фрагмент кода ниже сохраняет сегодняшнюю дату в файл google://docs. Затем с помощью флага --append команды ferris-redirect новое содержимое добавляется в существующий документ Google. Добавление может пригодиться, если у вас есть скрипт, генерирующий информационные сообщения, и вы хотели бы, чтобы пользователи, у которых есть доступ к Google Docs, смогли эти сообщения прочесть:
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
$ ftouch google://docs/appender.txt $ date | ferris-redirect --trunc google://docs/appender.txt $ fcat google://docs/appender.txt Fri Aug 21 11:54:25 EST 2009 $ date | ferris-redirect --append google://docs/appender.txt $ fcat google://docs/appender.txt Fri Aug 21 11:54:25 EST 2009 Fri Aug 21 11:54:53 EST 2009
Если вы создадите несколько каталогов в web-интерфейсе Google Docs, они появятся в виде каталогов и в libferris. По адресу google://docs можно просматривать их содержимое, загружать данные и обновлять целые документы.
Вы, видимо, любопытствуете, что же еще поддерживает для таблиц libferris. Вспомним, что у файла в libferris бывают расширенные атрибуты (EA) вида ключ=значение, и эти атрибуты также виртуализируются libferris. Таким образом, атрибуты могут приходить и уходить откуда и куда угодно.
А если разделить таблицу на строки и представить каждую в виде файла со столбцами, представленными расширенными атрибутами? Тогда содержимое отдельной ячейки можно было бы получить командой cat, а для записи в определенную ячейку приспособить перенаправление stdin — короче говоря, наладить взаимодействие таблиц с командной строкой.
Несколько примеров помогут прояснить функции расширенных атрибутов и ячеек. Пусть вы создали таблицу smalltest1 с рабочим листом Sheet1. В libferris URL этого листа содержит префикс google://spreadsheets и имя таблицы, за которым следует имя рабочего листа, как показано в объявлении переменной SPREAD ниже.
При открытии smalltest1 (или создании новой таблицы) через web-интерфейс Google строки пронумерованы, причем верхняя строка имеет номер 1, следующая – 2 и т. д. Столбцы отмечены буквами, начиная с A. Все это соответствует стандартному соглашению об обозначениях элементов таблиц.
В libferris каждая строка становится виртуальным файлом с именем, которому соответствует номер строки, и расширенными атрибутами для связанных с ней ячеек в столбцах A, B, C и т. д. Чтение атрибута b файла 9 даст нам значение ячейки B9 таблицы. В примере ниже Google превращается в самодельный калькулятор, сначала заполняющий две ячейки таблицы, а затем записывающий формулу в третью ячейку. Как и через web-интерфейс, в ячейку можно записать формулу, но значением ячейки будет результат ее применения. Так, запустив cat для ячейки с формулой, мы увидим результат вычисления:
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
$ export SPREAD=google://spreadsheets/smalltest1/Sheet1 $ echo 5 | ferris-redirect --ea b $SPREAD/9 $ echo 23 | ferris-redirect --ea c $SPREAD/9 $ echo -n “=sum(B9,C9)” | ferris-redirect --ea d $SPREAD/9 $ fcat -a d $SPREAD/9 28
Далее, предположим, что в строке 9 аналогичным образом заданы значения, по крайней мере для столбцов B, C и D. Добавив метки и небольшую обертку для SQLite, приведенную ниже, мы можем позабавиться с SQL и Google Spreadsheets. Обратите внимание, что в обеих командах echo для предотвращения создания символа перевода строки используется опция -n. Это важно, так как мы хотим, чтобы в ячейку записалось foo, а не foo\n. В следующем примере создается сессия SQLite для libferris:
$ echo -n foo | ferris-redirect --ea a $SPREAD/9 $ echo -n bar | ferris-redirect --ea a $SPREAD/10 $ cat run.sh #!/bin/bash SQLFILE=${1:=test.sql}; rm -f /tmp/empty/test.sqlite touch /tmp/empty/test.sqlite sqlite3 -init $SQLFILE /tmp/empty/test.sqlite >/dev/null;
Во всех SQL-файлах, которые работают с Google Spreadsheets, нужно настроить виртуальную таблицу для рабочего листа. Соответствующие SQL-запросы (файл $SQLFILE) приведены ниже. Сначала загружается общая библиотека виртуальной таблицы libferris, а затем создается таблица для представления URL-адреса, доступного через libferris. Третий параметр – упрощенная версия обычного синтаксиса создания таблицы: перечисление всех столбцов и их типов.
Столбец берется из расширенных атрибутов файловой системы libferris, и поскольку каждый столбец таблицы – это расширенный атрибут, легко получить через SQLite всю таблицу:
.load libferrissqlitevtable.so create virtual table fs using libferris( ‘google://spreadsheets/smalltest1/Sheet1’,‘’,name text, a text, b int, c int, d int, e text, f text, size int );
Табличный SQL
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Можно проверить, что Google умеет складывать числа и что формула в D9 работает так, как мы ожидали, сложив две ячейки с помощью SQL. Обратите внимание, что выражение с where выбирает строку по значению ячейки в таблице, ограничивая запрос только строкой 9. Вот какие данные будут выбраны из Google Spreadsheet:
.headers on select a,b,c,d,b+c as result from fs where a = ‘foo’; a|b|c|d|result foo|21|25|46|46
Конечно, в запросах можно использовать конструкции SQL и поинтереснее. Посмотрите на набор данных ниже. Группировка по двум столбцам для генерации отчета здесь легко обрабатывается SQL:
SELECT max(b),max(c),avg(d) AS mean, sum(d) AS total FROM fs WHERE NOT (b = ‘’ OR c = ‘’) GROUP BY b,c; max(b)|max(c)|mean|total LA|barry|77.0|77 LA|john|12.0|12 LA|peter|54.5|109 NY|barry|77.6666666666667|233 NY|peter|56.0|56
В первой строке листа можно также дать столбцам заголовки: например, поместить location в B1 этой таблицы и пользоваться location вместо b в качестве имени столбца. Когда вы редактируете данные клиентом libferris – в ferris-redirect или файловом менеджере ego (см. рисунок) – таблица в браузере обновляется автоматически. Правда, поддержка мониторинга ленты обновления от Google в libferris еще не реализована, и если вы что-то измените в браузере, то, чтобы увидеть эти изменения, придется обновить клиенты libferris вручную. Обратите внимание, что в файловом менеджере ego столбцы с именами city, person и sales соответствуют столбцам b, c и d. Для доступа можно использовать любое из имен.
В дальнейшем планируется добавить возможность использования другого интерфейса аутентификации в Google, и незачем будет указывать имя файла и пароль в libferris. Также планируется поддержка в Google Docs большего количества типов файлов и обновлений с возможной интеграцией с rsync и git, так что вы сможете локально хранить резервную копию или журнал с изменениями файловой системы Google Docs.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Альтернатива SQL
Если вы не любите SQL, для получения данных из таблицы Google или любой другой файловой системы libferris пользуйтесь XQuery. XQuery может быть удобнее в том случае, если вы генерируете XML-документ по запросу.
Libferris умеет монтировать журналы Apache и реляционные базы данных, а XQuery позволит объединить web-записи первого с пользовательскими данными последних в отдельные KML-файлы для анализа географии ваших посетителей в Google Earth.
Идем дальше
Кроме Google Docs, планируется расширить поддержку YouTube, Vimeo и других видеохостингов, включив туда поиск по видео и загрузку через виртуальные файлы – точно так же, как в API Flickr. Таким образом, должна появиться возможность проигрывать видео с этих сайтов прямо в MPlayer, Xine или VLC, не привлекая браузер.
Основная задача, конечно, охватить побольше сайтов. О некоторых уже известно: это Last.fm и LinkedIn. Также есть планы выделить базовые классы для общей функциональности web-сервиса – постов, списков, комментариев и друзей. В конце концов, на многих из этих сайтов есть система друзей и списки видеороликов и фотографий. Базовые классы смогут позаботиться о функционале, инициируя перечитывания и асинхронные обновления. Это значит, что когда друг добавит комментарий, тот автоматически появится в виртуальной файловой системе.
Сбор друзей всех web-сервисов на Akonadi может также оказаться перспективным. По файлам виртуальных карточек vCard может будет легко увидеть общих друзей на разных web-сервисах.
Web-сервисы – последнее добавление к libferris, и они постоянно развиваются, обрастая новыми возможностями и все больше приближаясь к web-сервисам, лежащим в их основе. Помните, что это открытое ПО – увидев в API web-сервиса то, что вы хотели бы видеть в файловой системе, можете добавить это сами.
Ресурсы
- Первая часть статьи о совместном использовании libferris и SQLite. http://ldn.linuxfoundation.org/article/libferris-and-sqlite-a-powerful-combination-part-1
- Информация по GStreamer и загрузке. http://gstreamer.freedesktop.org
- Домашняя страница расширяемого хранилища Akonadi. http://pim.kde.org/akonadi
Строим социальные сети
Когда сайты социальных сетей начнут поддерживать FOAF+SSL (http://www.w3.org/wiki/Foaf+ssl), вы сможете перетаскивать контакты из одного web-сервиса в каталог с друзьями на другом, обновляя данные на каждом.