Tag Archives: Yahoo Pipes

yqlconsole

Tweettien uusiokäyttöä

Twitter on uutisvälineeni nro 1, lähes. Niinpä suosikkejakin tulee tallennettua usein. Säilön linkkejä kiinnostaviin juttuihin. Ne tuppaavat kuitenkin unohtumaan, koska eivät ole mukana uutissyötteissä, joita taas käyn läpi GReaderilla. Yhteys puuttuu. Twitterin OAuth-autentikointi on pelottanut sen verran, etten ole tarttunut toimeen.

Tällä viikolla satuin katsomaan tallenteen YUIConf 2011 -konferenssista. Siinä YQL engineer Paul Donnelly demoaa, miten YQL-konsolinäkymässä saa rakennettua oikeanlaisen REST-kyselyn Twitteriin siten, että ohjelmointirajapintaan pääsee käsiksi. Pelkällä Yahoo Pipesilla tämä ei onnistu, koska se ei tue OAuthia.

YQL-konsolilla homma on helppo, kunhan vaan on ensin hankkinut tarvittavat avaimet ja tokenit. Ne saa Twitteriltä, rekisteröit vain jonkin sovelluksen.

Videolla YQL-osuus alkaa n. 20 minuutin paikkeilla.

Hae esiin Data tables -osiosta twitter.favorites, klikkaa konsolin response-laatikon oikeaan ylänurkkaan ilmestyvää painiketta – ja saat eteesi lomakkeen, johon avaimet ja tokenit kopioidaan. Itselläni meni tuon painikkeen äkkäämiseen tovi; videosta ei saa ihan selvää, mihin kohtaan Paul sormellaan osoittaa.

Kun testi menee läpi, konsolin alalaidasta voi kopsata valmiin kyselyn. Se Yahoo Pipesin Fetch data -moduuliin, ja siitä sitten RSS-syötteen peruskentät kuntoon ja siirto GReaderiin.

Väitöskirjat

Suomalaisista yliopistoista valmistui vuonna 2009 reilut 1600 uutta tohtoria. Olen siitä omituinen, että tykkään vilkuilla minkälaisia väitöskirjoja on ilmestynyt. Suurin osa kovasta tieteestä menee yli hilseen (onko kukaan väitellyt hilseestä?), mutta mukaan mahtuu silti sadoittain potentiaalisesti mielenkiintoisia, tuoreita tutkimuksia.

Väitöstilaisuuksista ja uusista väitöskirjoista tiedotetaan yliopistojen verkkosivuilla. Lehdistötiedotteissa, osana yleis-, ajankohtais- tai tiedeuutisia, tapahtumakalenterissa, uusissa julkaisuissa. Tiedottaja on yleensä joko yliopiston viestintä, julkaisuyksikkö tai kirjasto. Väitösuutisista kiinnostuneen kansalaisen on oltava kärppänä, mistä mitäkin löytyy ja milloin.

Reilu vuosi sitten tein tukun RSS-syötteitä Yahoo!Pipesilla niiden yliopistojen väitöksistä, jotka eivät sitä itse tarjoneet. Melko työlästä. Yliopiston julkaisujärjestelmästä (tai sen puutteesta) riippuen tiedote putkahtaa ilmoille eri tekniikoilla tuotettuna ja vaihtelevan muotoisena. Olennaisten tietojen poimiminen HTML-sivulta on pikkutarkkaa puuhaa, eikä mikään takaa että logiikka toimii enää ensi viikolla.

Kävin nyt uudestaan läpi kaikki putket. Muutoksia tuli pal-jon. Ei mikään ihme. Yliopistoja on tällä välin yhdistelty, järjestelmiä uusittu, sivuja siirrelty, leiskoja muutettu.

Kaikkien syötteiden liittäminen yhteen ja samaan tekee lopputuloksesta raskaan, joten jaoin ne viiteen pakettiin. Maantiedettä mukaillen etelästä pohjoiseen: pääkaupunkiseudun, Turun, Tampereen yliopistot sekä Lappeenrannan, Jyväskylän, Vaasan ja Itä-Suomen, Oulun ja Lapin yliopisto.

Helsingin yliopiston E-thesis -palvelun mittavasta syötetarjonnasta ovat mukana vain keskustakampus ja Kumpula. Yksi on joukosta poissa: entinen TKK eli nykyinen Aalto-ylipiston Teknillinen korkeakoulu. Syötteet ovat HTTPS-protokollan takana, ja Yahoo!Pipesilta ei löydy tukea sille. Varsinaisesti. YQL-kyselykielen ja Fetch Data -modulin avulla protokollarajoitetta voi tosin yrittää kiertää. En saanut temppua onnistumaan TKK:lla, Jyväskylässä (RSS) sen sijaan kyllä. Tiedä sitten, mikä ero tuossa on…

Jo hyvissä ajoin ennen väitöstilaisuutta väitöskirjan metatiedot on tallennettu digitaaliseen, määrämuotoiseen formaattiin. Työn on tehnyt yliopiston kirjasto. Metatieto on saman tien päivitetty paitsi paikalliseen tietokantaan myös Kansalliskirjaston Linda-yhteistietokantaan. Harmi vain, että tähän metatietoon ei ole toistaiseksi tarjolla avointa ohjelmointirajapintaa. Jos osaa ja viitsii, Lindan hakuliittymästä voi tietysti riipiä haluamansa tiedon screen scraping -tekniikoilla. Kotitarpeita ajatellen koodaus menee kuitenkin överiksi.

Kuinka ollakaan, tiedot väitöskirjoista leviävät myös Suomen rajojen ulkopuolelle. Isoimpia toimijoita ovat WorldCat ja Google Scholar. Molemmat tarjoavat API:n. Molemmat rajoittavat API:n käytön to qualifying institutions, mitä se sitten käytännössä tarkoittaakaan. Tiedän, että Google Scholarilla on paljon ystäviä, koska se on ajan tasalla. Vaikka sieltä ei välttämättä löydykään muuta kuin englanninkielistä aineistoa – kuten Jyrki Ilva E-thesis -palvelusta huomautti jo vuonna 2006 – suomenkieliset väitöskirjat alkavat olla harvinaisuus.

Leena Saarinen kirjoitti maaliskuussa Kansalliskirjaston Digitaalinen kirjasto -blogissa myönteiseen sävyyn Julkinen data -julkaisusta otsikolla Askel kohti avointa julkisdataa. Tämä lupaa hyvää. Nyt ei kun yhdessä toivomaan, ettei tarvitse odottaa liian kauan.

Tvleffat-putki päivittyi

Muutama vuosi sitten tein tulevien TV-elokuvien syötteen telkku.com -palvelun perusteella. Kun äsken tweettasin illan Beat the Devil -leffasta, kävin pitkästä aikaa katsomassa, miltä putken alkupää näyttää. Ja kas, sieltähän löytyy nyt myös joistakin elokuvista linkki www.imdb.com-sivuille. Kopautin putkea, ja nyt linkki valuu mukana. Jos sinulla on sattumalta jatkotilaus putkesta, päivitä se syötelukijassasi.

Vielä kerran Radioputkesta: VTIMEZONE kunnolla mukaan

Yahoon putkesta tuleva vajavainen iCal alkoi nyppiä. Haen tämän outputin nyt Linux-ympäristöön, rakennan siellä standardinmukaisen tiedoston, siirrän sen webbipalvelimelle, ja tilaan sen sieltä Google-kalenterilla.

Skriptiä varten tein kaksi samana pysyvää aputiedostoa alku ja vtimezone, jotka yhdistetään muuttuvaan tietoon jokaisella ajokerralla.

alku:


BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ts.fi/iCal/EN

vtimezone:


BEGIN:VTIMEZONE
TZID:Europe/Helsinki
BEGIN:STANDARD
DTSTART:19811001T040000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:Europe/Helsinki
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19810301T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:Europe/Helsinki
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
END:DAYLIGHT
END:VTIMEZONE

Tämä shell-skripti on ajastettuna kerran vuorokaudessa.


#!/bin/bash

# Yahoo!Pipesin tuottaman iCal-muotoisen tiedoston URL
url='http://pipes.yahoo.com/pipes/pipe.run?_id=6602675e62d5d95c7333285517e6a471&_render=ical&urlinput1=http%3A%2F%2Fspreadsheets.google.com%2Fpub%3Fkey%3Dtd1iey6KTeeTgGlE6U3_PPg%26output%3Dcsv'

# Haetaan data, ja tallennetaan se tiedostoksi
curl $url -o tolisten.ics

# Otetaan alussa olevat metatiedot talteen
grep X-WR tolisten.ics >XWR

# Yhdistetään alku, metatiedot ja aikavyöhyketiedot
cat alku XWR vtimezone >beforeevents

# Otetaan tapahtumatiedot erilleen
sed -n '/BEGIN:VEVENT/,$p' tolisten.ics >events

# Tyhjät rivit pois, ja korvataan DTSTART- ja DTEND-rivit
perl -pe 's/^n//;s/DTSTART:/DTSTART;TZID=Europe/Helsinki:/g;s/DTEND:/DTEND;TZID=Europe/Helsinki:/g' events >tzidevents

# Yhdistetään alkuosa tapahtumatietoihin
cat beforeevents tzidevents >all.ics

# Siirretään valmis tiedosto webbipalvelimelle
mv all.ics ~/public_html/yle.ics

# Lopuksi vielä tiedoston lukuoikeudet kuntoon
chmod go+rx ~/public_html/yle.ics

iCal-standardi edellyttäisi lisäksi jokaiselle tapahtumalle uniikin ID:n. Google-kalenteri ei sitä välttämättä tarvitse, mutta ehkä sen voisi vielä tuohon viritellä.

ylesplit

Radioputkia, laajan matematiikan kurssi

Edellisessä postauksessa jäin tilanteeseen, jossa ohjelman viimeinen kuuntelupäivä sijoittuu edessä häämöttävään talvikauteen, ja se pitäisi hanskata jotenkin. Helppo korjaus on se, että putki haaroitetaan: toisessa vähennetään kolme, toisessa kaksi tuntia. Yhdistämisen jälkeen tehdään yhteinen loppusiivous. 

tw

Radioputkia

Kuuntelen säännöllisesti muutamaa Yleisradion ohjelmaa YLE Areenasta. Lue: yritän muistaa kuunnella. Aina ei onnistu.

Tweettaus
Ohjelmien RSS-syötteessä on tieto siitä, milloin kukin ohjelmajakso poistuu palvelusta. Tämä tieto Google-kalenteriin, muistutus sähköpostissa vaikka kuusi tuntia ennen ohjelman häipymistä – kelpaisi minulle. Pilvipalveluna? Mikäs siinä. Kyse ei ole kriittisestä jutusta.

Yahoo!Pipes tarjoaa iCal-ulostuloputken, jonka voi tilata Google-kalenteriin. Ei hassumpaa. Entä missä pitää listaa seurattavista ohjelmista? Itse putkeen sitä ei kannata pultata, koska silloin ylläpito menee hankalaksi. Onneksi Yahoo!Pipes-putkeen voi tuupata dataa ulkopuolelta CSV-muodossa. Google Docsin taulukkolaskentaohjelma taas osaa julkaista lakanan CSV:nä. Prosessi alkaa hahmottua. Töihin!

Google Docs Spreadsheet
Osoite-sarakkeessa on Areenan A-Ö -listauksesta löytyvä ohjelman kuuntelusivun URL. B-sarake on vain sitä varten, että muistaa mistä ohjelmasta on kyse; URL kun ei sitä kerro.

Lakana pitää julkaista: Share > Publish as web page > Get a link to the published data (CSV). Täppä sille, että julkaistaan aina kun dokumenttia on muutettu. URLista kopio, putkelle syötteeksi, ja ajo. More options -valikosta löytyy Get as iCal. Tästä linkistä kopio.

Googlen kalenteri ei suostu nielaisemaan linkkiä tällaisenaan. Avuksi tulee jokin verkosta löytyvä URL-lyhennepalvelu kuten bit.ly, tiny.url tai vastaava. Lyhyt-URL talteen, ja Google Calendar auki. Other calendars > Add > Add by URL. Kopio sinne.

Nyt on jo lähes valmista. Google ilmoittaa, että se aikoo indeksoida kalenterin, mitä se sitten ikinä tarkoittaakaan tässä yhteydessä. Voi kestää tovin, ennen kuin ohjelmatiedot tulevat näkyviin. Jos tuntuu kestävän, kokeile virkistystä Refresh-linkistä.

Uuden kalenterin Notifications -kohtaan vielä Event reminder: By default, remind me via email 6 hours before each event. Ja sitten ei kun odottamaan, että automaatio hoitaa loput. Yahoo! kysyy Googlelta, mitä seurataan. YLE päivittää ohjelmasyötteen. Yahoo! käy hakemassa sen. Google lisää uudet tiedot kalenteriin – noin kerran vuorokaudessa – ja pistää postia, kun aika ok.

Päältä katsoen homma näyttää toimivan kuin rasvattu. Ylimääräistä rasvaa siellä onkin.

Yahoo Pipes
Isoin ongelma on aika. Toinen, pienempi, on merkistö.

Putkessa on rumaa liimaa: kellonajoista vähennetään kolme tuntia, jotta ajat menevät oikein silloin kun kalenteri on Suomen aikavyöhykkeellä ja on kesä. Vain näin olemme Googlen kanssa päässeet yhteisymmärrykseen siitä, mitä kello oikein on.

Montakohan tuntia pähkäilin tämän kanssa? Monta. Kuinka ollakaan, kävi ilmi, että tämä on tuttu juttu. Syy on ainakin osaksi Yahoo!n, sillä iCal-tiedosto on Googlen mielestä vajaa. Siitä puuttuu VTIMEZONE-komponentti, joka kertoo faktat minun aikavyöhykkeeni kesä- ja talviajasta: milloin muutos tapahtuu, ja mihin suuntaan kelloja silloin siirretään suhteessa Greenwichin aikaan (GMT). Jokaisessa kalenteritapahtumassa voisi silloin viitata tähän aikavyöhykemäärittelyyn TZID-avaimella, automaatio raksuttaisi ja kaikki olisivat tyytyväisiä.

Allaoleva iCal-tiedosto on Google Calendarin mielestä ok. Testasin sen tallentamalla tiedoston webbipalvelimelle ja tilaamalla sen sieltä. Tapahtuma-ajat menivät nätisti paikoilleen, vaikka välissä vaihtuu kesä talveksi. Great! Valitettavasti vaan Yahoo!Pipesilla ei pysty tuota VTIMEZONE-komponenttia lisäämään, koska se ei liity tapahtumaan eli putkiterminologian mukaan RSS-syötteen yksittäiseen alkioon.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ts.fi/iCal/EN
BEGIN:VTIMEZONE
TZID:Europe/Helsinki
BEGIN:STANDARD
DTSTART:19811001T040000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:Europe/Helsinki
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19810301T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:Europe/Helsinki
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:ts.fi-1
DTSTART;TZID=Europe/Helsinki:20100411T081500
DTEND;TZID=Europe/Helsinki:20100411T081500
SUMMARY:Tapahtuma1
END:VEVENT
BEGIN:VEVENT
UID:ts.fi-2
DTSTART;TZID=Europe/Helsinki:20101103T074500
DTEND;TZID=Europe/Helsinki:20101103T074500
SUMMARY:Tapahtuma2
END:VEVENT
END:VCALENDAR

Oli miten oli. Jos yrittää sinnitellä Google-kalenteriputken kanssa, niin ennen kuin normaaliaika taas lähestyy, putkeen on vähintään saatava valid-elementin haistelu. Siellä sanotaan selkeästi, onko aikaero kaksi vai kolme tuntia GMT:hen.

iCalin oletusmerkistö on UTF-8. Yahoo!Pipesin tuotos on sitä, mutta ainakin Windows XP+Firefox 3.6.3 -näkökulmasta jotain on pielessä lähetyspäässä (?), sillä skandinaaviset kirjaimet eivät näy oikein. En ole tutkinut asiaa sen syvällisemmin. Poistin suosiolla pisteet ja aksentit jo putkessa.

Paikalliselta koneelta löytyy Windows Outlook 2003 ja sen kalenteri. Tässä versiossa ei ole dynaamista kalenterin tilausmahdollisuutta (uudemmissa Windowseissa on), mutta perus-import syö siististi tästä toisesta putkesta tulevan iCal-tiedoston. Edes kellonaikoja ei tarvinnut sitä varten ruveta säätämään. Riittää, että valid-elementistä poimi end-arvon jatkoa varten.

Yahoo Pipes Outlookia varten
Skandiongelma on kyllä täälläkin, joten nöyrästi vain pilkut piiloon!