Просмотров: 4286

Yahoo! Pipes: наше дело – труба. Пример 1


Продолжая священное для меня дело знакомства с онлайн-сервисом Yahoo! Pipes, начатое мною самолично ещё в прошлом посте, переходим к практическому этапу прощупывания всех красивостей и полезностей, так выпукло выпирающим у этой замечательной американской интернет-службы. И первый, вводной пример, — очень простой и отчасти, не побоюсь этого слова, бестолковый, — будет называться так:

«Пример первый: ненасильственная кириллизация американского президента»

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

Сформулируем нашу первую задачу. У нас есть некий англоязычный фид с ресурса интересного смуглого человека, и мы очень хотим подписаться на него, но в силу хронического незнания английского языка мы бы хотели читать его на русском языке. С Yahoo! Pipes такие мелочи решаются очень просто, поэтому давайте перейдем непосредственно к иллюстрации этого факта.

Итак, аккаунт Барака Обамы в «Твитере» нам известен, значит, адрес его фида будет таким. Это исходные данные для решения первой задачи, а теперь переходим непосредственно к её решению. 

Регистрируемся в Yahoo! Pipes (у всех служб Yahoo! — единый пароль/логин на все службы, подобно тому, как это сделано у Google) и переходим на центральную страницуэтой службы pipes.yahoo.com/pipes, где щелкаем на кнопку слева Create Pipe и приступаем к конструированию своей первой трубы… пайпа.

  Перед нами исходное полотно пока пустого пайпа, причем слева мы видим названия групп с набором инструментов и модулей. Перемещение всех элементов элементарно: путем обычного drag&drop, т. е. ленивым перетягиванием мышкой. Каждый раз мы выбираем нужный нам инструмент и перетягиваем его на рабочее полотно в середине экрана. Каждый нормальный пайп начинается с указания внешних источников поступающей информации, собственно, того контента, с которым мы собрались что-то делать посредством пайпа. В нашем случае — это микроблог президента Америки. Поэтому в группе Sources хватаем инструмент Fetch Feed и уверенно тянем его мышкой на рабочее поле, после чего в его поле URL вбиваем адрес нашего американского визави, указанный чуть выше.

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

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

Сначала открываем группу операторов Operators, где выбираем инструмент создания цикла прохода по пунктам потока, т. е. Loop, вытягиваем его на середину экрана. Этот элемент, как можно видеть, выполнен в виде контейнера (в нем написано — Drоp mоdule from toolbоx here), т. е. чтобы его применить, нужно вложить в него некое действие, которое, собственно, в этом цикле-проходе и будет исполняться.

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

После того как модуль Loop был успешно заряжен функциональностью Translate, пора настроить нашу переводческую машину в нужный нам режим. Для этого наперво выбираем в выпадающем списке элемента Translate нужное нам направление перевода: English to Russian. Далее задаемся вопросом: что именно мы будет переводить в этом фиде? Давайте пока ограничимся заголовком исходного фида (указывается в поле элемента Loop: For each), и транслировать его мы будем опять же в заголовок нашего исходящего «русского» фида (нужно выбрать в поле assign results из выпадающего списка пункт item.title). Если вдруг вы интуитивно не понимаете смысл выбираемых полей, то можно в дополнение, хотя бы очень поверхностно, ознакомиться со спецификацией RSS.

Теперь выполняем традиционное действие, когда механизм из операторов настроен и готов: соединяем все рабочие элементы трубопроводами, причем, естественно, важно это сделать в нужно порядке. В нашем случае элементов пока у нас пока мало, поэтому протягиваем трубу из первого элемента Fetch Feed (из кружка в нижней его части) в верхнюю, принимающую часть нашего обрабатывающего элемента Loop. После этого точно так же вытягиваем трубу из нижней исходящей части Loop и замыкаем её в финальный элемент Pipe Output, который располагается всегда внизу экрана. Теперь можно щелкнуть на заголовке элемента Pipe Output, чтобы привести весь механизм в движение, после чего Pipe Output вспыхивает приятным оранжевым цветом, а в окне отладки начинает светиться анимированная иконка службы Yahoo! Pipes. В итоге должна получиться конструкция, похожая на то, что изображено на моем скриншоте внизу.


Первый пример пайпа: TestPipe1-RusObama

Подведем краткий итог первого эксперимента

Из подходящих для нашей задачи элементов мы собственноручно собрали переводящую rss-поток машину. Где в начале мы указали rss-источник (в FetchFeed), а затем в цикле перевели заголовок каждого поста на русский (комбинация контейнера-цикла Loop и элемента-переводчика Translate). После чего замкнули все элементы воедино трубопроводом. Внизу экрана мы видим окно отладчика, который показывает нам результат нашего результирующего фида, ориентируясь на который, мы всегда можем оперативно заметить ошибку или доработать результат, если он нас не устраивает в чем-то.

Теперь для публикации этого фида нужно сохранить его, для чего сначала заходим в раздел Properties (кнопка справа вверху страницы) и указываем там название этого пайпа, после чего нажимаем кнопку Save, чтобы сохранить его (физически всё хранится на сервере Yahoo!, где все ранее сохраненные пайпы всегда будут доступны вам через ваш аккаунт). Весь описанный выше и сохраненный нами только что механизм из труб и логических блоков обработки информации и называется в общем случае как пайп, т. е. онлайн-программа конвейерной обработки информации.

Теперь, если мы зайдем в раздел My Pipes, там мы можем всегда выбрать любой сохраненный нами ранее пайп, причем, выделяя его, можно увидеть и всплывающий пункт Publish, выбирая который, мы публикуем пайп, делая его публично доступным для любого и каждого. Последняя возможность как бы ненавязчиво подчеркивает, что Yahoo! Pipes — сервис отчасти коллективный, кстати, полюбоваться на самые популярные в мире пайпы можно вот здесь.

Таким образом, любой может зайти в этот пайп и просмотреть его устройство по его публичному адресу (или даже позаимствовать его код для своего пайпа через Clone). Кроме того, как видно, сверху от окна прокрутки содержимого пайпа для нас доступен и выбор источников для разных форматов его трансляции, например вот RSS-трансляция этого пайпа.

Теперь, подписавшись на этот полученный нами rss, вы сможете читать самого Барака Обаму, довольно сносно изъясняющегося на непривычном для него русском языке. При этом, повторяюсь, физически оригинальная rss каждый раз будет проходить через дебри Yahoo!, где каждый раз будет автоматически приводиться по нами установленным правилам к тому виду, который нужен лично нам, после чего мы будем забирать готовую rss через результирующую выдачу нашего пайпа. Раз настроив и отладив нужный нам пайп, мы можем пользоваться им сколько угодно. Он всегда к нашим услугам и безостановочно работает где-то на серверах далекого и прекрасного Yahoo! 24 часа и 7 дней в неделю, продолжая безостановочно транслировать нам теперь уже нашу обработку исходного фида.

В качестве домашнего задания предлагаю разобраться в новой, более составной цепочке из пайпов, ну, а новая версия пайпа теперь выглядит так:


Усовершенствованный первый пример пайпа:
TestPipe1-RusObama[full]

Получить доступ к его коду можно по этому адресу.

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


Продолжение этой обучающей серии читаем тута.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , , , ,
Эта запись опубликована: Четверг, 11 августа 2011 в рубрике Обзоры.

1 комментарий

Следите за комментариями по RSS
  1. Ой-ей!

    Не вижу сейчас в Пайпах в Стринге Перевода Translator'а.

    Похоже, они удалили эту фишечку. :(((

    Или может перенесли куда-то? Вы не глянете на сегодняшние Трубы, а?

    Пожалуйста!

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

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз