Frisim

Söndagshack: Tweets som länkar nyheter

Posted in Frisim on oktober 4th, 2009 by Clas – Kommentering avstängd

För en månad sedan skrev jag om möjligheten att visa tweets som länkar till nyheter. Jag noterade då att det går bra att söka fram länkar med hjälp av Twitters sökfunktion.

Nu har jag provprogrammerat lite. Det visade sig vara mer komplicerat än jag trodde. Problemet är att Bit.ly, som används för att skapa korta länkar, ger olika länkförkortningar (hash) beroende på vem som skapat dem. De skapar alltså olika länkar till en och samma URL, t.ex dessa två http://bit.ly/W7yzX, http://bit.ly/JkPmw leder till exakt samma URL. Det som behövs är därför en möjlighet att fråga Bit.ly om alla förkortningar som de skapat för en viss länk, och sedan söka hos Twitter efter ”tweets” som använder någon av dem. Alterantivt behöver man hålla koll på hela Twitter-flödet och ”expandera” alla kort länkar. Trixigt! Som tur är finns det redan några som har funderat på problemet, t.ex Twingly och Backtweets. Jag har provat Backtweets och kan nu även visa ”tweets” som länkar till en specifik nyhet. Så här ser det ut:




Det är så kul att baka in en ”mellanhand”, men det är lite enklare än att försöka göra ”deals” med Bit.ly och andra länkförkortare om att få göra denna typ av ”bakåtuppslagningar”.

Nackdelarna med Backtweets är att den ibland returnerar felaktigheter, samt att det naturligtvis innebär ytterligare en fördröjning innan tweeten hittas. Än så länge visas bara relaterade tweets under ”aktuellt-filken” på Nyhetr.se, men om det visar sig ge något mervärde är det enkelt att skapa även för andra listor med nyhetslänkar. Just nu är det mestadels nyhetssajternas egna Twitter-feed-bots som länkar deras egna nyheter, vilket inte är speciellt intressant, tyvärr.

Som av en tillfällighet är detta väldigt likt den funktionalitet som nysläppta Twingly Channels har. Nyhetr.se använder dock inte tweets för att rangordna nyheterna, utan det sker fortfarande bara med hjälp av blogglänkar eller ”word bursts”.

Bloggping-statistik

Posted in Frisim on augusti 15th, 2009 by Clas – 2 Comments

Av de 63549 bloggar som Frisim/ping har pingats med, så har 44685 både passerat SPAM-filtret och har en RSS-feed. Mycket av det SPAM som pingas in är profil eller medlemssidor på forum. Mycket av detta ser ut at komma från servrar i USA och Kina. Ofta är det samma sidor (domäner) som pingas in från många olika IP-nummer. Forums-adresserna som pingas in är ofta ”hackade” visar endera upp en lång lista med länkar, eller också skickar forumsidan iväg besökaren till någon skräpsida med hjälp av Javascript.

Blogghotellet blogghotell.se är den som pingar in överlägset mest ”SPAM” av svenska IP:n. Blogghotellet verkar pinga ut från en server hos Oderland.

Av de 44685 bloggar som passerat SPAM-filtret, och som Frisim också hittat en RSS-feed till, är det bara 2591 bloggar som är ”aktiva” och som har uppdaterat och pingat in igen inom de senaste 14 dagarna.

Skillnaden mellan SPAM och normala bloggar är tyvärr ibland hårfin. Somliga bloggar verkar fyllas med lite random texter, andra innehåller texter som ingen männsika rimligen kan stå för. Även om Frisim indexerar bloggar och gör dem sökbara, så är jag mest intresserad av att analysera vad bloggare länkar till, och i första hand vilka nyhetsartiklar som det länkas till just nu.

Frisim får tillbaka bloggar

Posted in Frisim on augusti 3rd, 2009 by Clas – Kommentering avstängd

Nu visar en sökning på Frisim även träffar bland bloggar igen. Anledningen till att jag tog bort dem för ett tag sedan var för att allt för mycket SPAM kommit med bland bloggarna. Nu filtreras blogg-pingar något hårdare.

Det är lite meningslöst att indexera en massa blogginlägg som i princip aldrig visas upp, så nu syns de alltså vid ”normala” sökningar igen. Vill du söka bland endast nyheter så går det bra att lägga till söktermen [kategori:nyheter] så syns inte bloggar eller pressmeddelanden.

Nyhetr Suggest, nyhetssök med ”autocomplete”

Posted in Frisim on augusti 1st, 2009 by Clas – Kommentering avstängd

För ungefär ett år sedan så lanserade Google en version som ger förslag på sökord, ”Google Suggest”. Förslagen kommer upp samtidigt som du gör din sökning i den vanliga Google-sökrutan. I Googles version så får du också en uppskattning på hur många sökresultat du kommer att få se om du genomför sökningen.

Denna typ av ”suggests” eller ”autocomplete” är en av mycket få innovationer som gjorts på den så traditionella sökrutan bland världens alla sökmotorer och sökfunktioner. Oftast är det förslag på sökningar som sökmotorn vet är vanliga, eller som ger sökträffar; när det handlar om att visa upp data användaren skrivit tidigare brukar det kallas ”autofill” istället, något som alla webbläsare erbjuder sina användare för bl.a. användarnamn och lösenord.

Nyhetr har nu fått en ”autocomplete”-funktion. Den är något enklare än Googles i och med att den bara föreslår enstaka ord och inte visar förväntat antal sökresultat. Så här ser det ut om du skriver in ”tw” i sökrutan:




Nyhetr föreslår bl.a. sökorden ”twitter”, ”twittergrundaren”, ”twitter” och ”twittra”, helt enkelt för att det är ord som förekommit i nyhetsartiklar de senaste dagarna.

Nyhetrs version av autocomplete är implementerad genom att använda jQuerys Autocomplete-plugin – otroligt enkelt. Det enda som behövde skapas är, givet ett eller flera tecken från sökrutan, en lista med ord som startar med dessa tecken. Detta måste dock gå väldigt fort. I min version så används Nyhetrs artikelindex för att hitta ord (”terms”) i indexet som matchar. Som det är implementerat just nu så används ord direkt från nyhetsartiklarna, men det skulle också fungera att använda listor med namn och platser, eller andra ”entities”, som finns lagrade separerat i sökindexet.

Server-backup till Amazon S3

Posted in Frisim on juli 29th, 2009 by Clas – Kommentering avstängd

Frisim.com har tidigare haft en kopia av sig som kört på en VPS. Denna VPS har också använts som backup-utrymme. Till denna VPS har jag kunnat köra rsync för att kopiera över filer och databas-dumpar av sådant som ändrats.

Då jag istället börjat använda Amazon EC2 som VPS, och då jag inte tänkt att ha den igång ”alltid”, så har jag flyttat min backup från min VPS till Amazon S3. Det sorgliga är att det inte går att köra rsync direkt mot S3. Därför har jag nu bytt till att göra backup med Jets3t. Jets3t är i första hand ett ”toolkit” för att använda Amazon S3, men innehåller bland annat ett färdigt script för att göra backup, synchronize.sh. Synchronize-scriptet är enkelt att använda, och i princip så tar det argument i form av UP eller DOWN, namnet på din ”hink” (bucket) på S3 och namnet på en lokal katalog. Filer eller kataloger som du inte vill ha med i backuppen utesluts genom att lägga en .jets3t-ignore-fil i respektive katalog. Smidigt i och med att du inte behöver ändra i backup-scriptet när du skapar nya kataloger.

Jag har bara gjort den första körningen, den där alla data kopieras, och en test-uppderating, men jag kan konstatera att det tar rätt mycket tid. Nu har jag inte så mycket data som uppdateras mellan varje backup, men data som måste laddas upp måste naturligtvis föras över till S3 och det verkar gå i en hastighet av c:a 100KB/s. Då har jag valt att lagra på en ”hink” i USA, inte i Europa. Uppladdningshastigheten är inte det segsaste, även om det tar mest tid, utan det är att synchronize.sh inte håller ordning på vad som den tagit backup på lokalt, utan behöver titta hos S3 för varje fil innan den kan avgöra om filen modifierats och behöver uppdateras eller inte. Det blir lite segt, och tar säkert runt 30 minuter för de c:a 30.000 filer som jag vill ha backup på.

Nu är det mestadels programkod och MySQL-data som är intressant att backa upp, så det är inte så kritiskt att det går fort eller görs ofta, så därför verkar Jets3t-backup-scriptet till Amazon S3 vara ett rimligt upplägg för mig. Då mina data inte är stort mer än 1GB så kostar det nästan inget att lagra på S3, och när den initiala uppladdningen är gjord blir det heller inte några höga trafikkostnader. Så länge det handlar om bara c:a 30.000 test av fildatum så kostar det c:a 25 öre, vilket blir minimikostnaden för en backup.

För den som har lite data och vill ha ett backup-system som är enkelt att konfigurera så rekommenderar jag Jets3t. Det är enkelt att använda för såväl server som office-dator. Java kanske känns omständligt på en server, och det kan det vara om du inte redan installerat det och använder det till annat, men samtidigt så har jag noterat att om man kör Centos 4, vilket jag gör, så får man ofta problem med ”för gamla” versioner av t.ex. Ruby eller Python för att köra backup-system såsom Backup-manager eller s3sync och då var Java ett väldigt bra alternativ.

Ett annat alternativ är Quillen. Quillen är ett ”extra lager” till Jets3t, och bör kunna vara något lite snabbare. Senare versioner av Quillen (efter 0.19) använder även Amazon SimpleDB för att lagra backup-information.

Updatering: Efter att ha provat igenom Jets3t så har jag noterat ett problem. Om du har filer med ”dåliga” filnamn, så kommer tyvärr Jets3t att ”krasha” och inte vilja uppdatera din backup. Problemet beror på att Jets3t använder en XML-parser för att kommunicera med Amazon S3, och när S3 skickar filnamn som innehåller tecken som inte är tillåtna i XML så avslutar Jets3t tyvärr backup-processen. Jag råkade ut för detta för filer som jag skapar med ett ”dåligt” PHP script som endera inte raderar radbrytningar i slutet på strängar/filnamn, eller också ersätter å, ä och ö med tecken som inte är ”XML-kompatibla”. Detta S3-problem är tydligen välkänt. Detta är troligen inte ett problem som är vanligt för ”normalanvändaren”. I övrigt fungerar det bra!

Nyhetssök – hur gör man?

Posted in Frisim on juli 14th, 2009 by Clas – 2 Comments

Efter att ha jämfört resultat från några nyhetssökmotorer så kan jag konstatera att Frisim inte är perfekt. Det hade jag heller inte väntat mig.

Hur bra en nyhetssökmotor fungerar beror mestadels på hur bra kvalitet det är på materialet som görs sökbart. Om det ”slinker med” mycket sidoinformation utöver artikeltexter, såsom menyer och puffar för andra artiklar, så blir resultatet dåligt.

När jag programmerade den första versionen av Frisim så hade svenska nyhetssajter inte RSS. Tanken med Frisim var då att ”göra lite bättre” än att bara hämta in nyhetsrubriker. Grundkonstruktionen var då att läsa nyhetssajternas förstasida, och scanna av den efter länkar till nya artiklar. Så fungerar Frisim, i princip, fortfarande. Skillnaden är att jag nu även använder RSS för att lite effektivare ska kunna hitta nya artiklar, men annars fungerar det likadant nu som då. När en ny nyhetsarikelsida har hittats så läses sidan in och HTML-koden analyseras. Ett antal generella ”regler” används för att hitta rubrik, ingress och brödtext. Dessa regler är samma för alla nyhetssajter – ingen anpassning eller konfigurering görs för olika sajter. Med denna typ av system är det svårt att få det perfekt. Det finns helt enkelt inte tillräckligt många parametrar att trimma in för att det ska fungera perfekt på alla sajter.

Alternativet är att skapa en ”style-fil” till varje nyhetssajt. Traditionella ”screen scrapers” som t.ex. Web-Harvest kan användas för sånt. Fördelen med ett sådant verktyg är att du relativt enkelt kan skapa XPATH-uttryck (eller regular expressions) som du kan använda för att hitta rubrik, ingress och brödtext. Nackdelen är att du måste göra denna anpassning för varje nyhetssajt du tänkt att indexera, samt att systemet blir väldigt känsligt för förändringar i nyhetssajternas HTML och CSS-kod. Du behöver följdaktligen lägger ner betydligt mer tid på att underhålla din nyhetssökmotor med denna typ av lösning.

Om jag får gissa så är Aitellus nyhetssök på Eniro baserat på regular expressions. Eniros söktjänst missar väldigt lite text i de flesta av de artiklar som de har hittat, och innehåller inte mycket sidoinformation/”skräp”. Googles (svenska) nyhetssök är gissningsvis inte baserat på regular expressions. Jag drar den slutsatsen på resultat som du får om du idag söker på t.ex. ”Avsluta när som” då du hittar bl.a. denna artikel. Svenska Google News är gissningsvis nära underhållsfri. Frisim har liknande problem som Google News.

Jag bestämde mig för att prova Web-Harvest, för att se hur komplicerat det är att istället använda ett system baserat på regular expressions. Web-Harvest känns relativt enkelt. Web-Harvest är skrivet i Java, något som innebär att det bygger på gedigna rutiner för XPATH, rensa HTML, köra script osv. Systemet har ett fint GUI som du kan använda för att skapa och prova ut dina script. När scriptet väl är utprovat är det färdigt att exekvera från din egna Java-kod. Jag satte ihop ett script för att ta fram titel, ingress och brödtext från en DN-artikel och lite Java-kod för att köra scriptet. Min kod är baserad på den exempel-kod som finns till verktyget och denna bloggpost. Vilken data som extraheras bestäms med hjälp av dessa rader kod:


let $title := data($doc//h1)
let $preamble := data($doc//div[@class="preamble"])
let $text := data($doc//div[@id="article-paragraphs"])

Här framgår det tydligt att så fort DN gör en smärre justering av sin HTML-kod, så är det inte troligt att det fungerar längre. Det går visserligen att skriva dessa rader något lite ”smartare”, men räcker troligen inte för att fortsätta att fungera efter t.ex. en uppdatering av DNs publicersingssystem. Men det fungerar bra just nu. Det är inte supersnabbt, men det är inte Frisims nuvarande system heller.

Statusuppdatering: Namn och bilder

Posted in Frisim on juli 9th, 2009 by Clas – Kommentering avstängd

Min experimentsökmotor Nyhetr.se har fått lite nya features. Den ”entity extraction” som jag på Frisim.com gjort i form av efterbehandling är nu flyttad till att göras när nyheterna indexeras. Detta gör att det går bra att visa fasetter även för namn bland nyheterna om man vill. Tyvärr gör för många fasetter att det blir lite trixigt att söka, tycker jag. När man närmar sig det antal fasetter (listade på högersidan) som finns på Svd.se/sok så blir det lite plottrigt. Om dessutom data för fasetterna inte är av 100%-ig kvalitet, som i mitt fall, så är det än värre. Jag har därför valt att visa namnen som vanliga sökningar istället.


Söknamn

Kanske borde jag läst Search user interfaces för att få reda på hur man bör göra, men just nu var det roligt att experimentera än att läsa.

Genom att samla lite sökstatistik från min lilla jämförelsesajt för att jämföra resultat från svenska nyhetssök så har jag nu fått lite tips på vilken typ av sökningar som ”power users” gör för sin RSS-bevakningar. Jag tänker mig att använda dem för att förbättre kvaliteten på mitt index. Vad som indexeras och hur det presenteras är två helt skilda saker. Genom att ha ”bäst” kvalitet på de indexerade nyheterna både när det gäller kvaliet och kvantitet så lockar du fler RSS-”leachers”; genom att ha ett fint webbgränssnitt så lockar du sajtbesökare. Jag ska försöka fokusera lite mer på det förstnämnda, och nästa steg i den riktningen blir att börja lagra alla de nyhetssidor som indexeras även som ren HTML.

Söndagshack: Jämför nyhetssökresultat

Posted in Frisim on juli 5th, 2009 by Clas – Kommentering avstängd

Jag har snickrat ihop ett litet verktyg för att enkelt kunna jämföra och utvärdera resultat från några svenska nyhetssökmotorer. Verktyget är byggt för att jag ska kunna använda det i någon form av intern kvalitetsutvärdering av någon av mina sökmotorer. Verktyget kan just nu göra sökningar hos Frisim.com, Nyhetr.se, Eniro.se/nyhetssök, Newsbrook.se, Nyhetsportalen.se och Google News.

Sökresutlaten som visas här är de resultat som fås i de RSS-flöden som respektive sökmotor levererar. I de fall som RSS-flöden innehåller HTML så har den tagits bort, vilket ibland påverkar utseendet på artikelns ingress. Nyhetssökmotorerna har olika antal källor och hanterar dubbletter av nyhetsrubiker lite olika – vissa visar alla dubbletter, medans andra sållar bort dem och bara visar en länk. Vissa av sökmotorerna söker bara i rubrik och ingress, andra i hela artikeltexten. Även det påverkar naturkligtvis träffarna.

Prova gärna här. Vilken nyhetssökmotor funkar bäst för dig?

Statusuppdatering: Nyhetr.se nyhetssök

Posted in Frisim on juni 23rd, 2009 by Clas – Kommentering avstängd

Nyhetr.se, utvecklingsversionen av Frisim.com, har blivit lite mer klar. Jag har ägnat ett par timmar åt att få startsidan, Aktuellt-fliken, att fungera. Det som visas där just nu är ett urval av nyheter baserade på ”Word bursts”, dvs trendanalys av ord i nyhetstitlar och ingresser. Ord som är onormalt populära just nu används för att söka upp nyheter under det senaste dygnet. Nyheter med högst relevans mot orden visas. I nuvarande version kan man också se vilka ord som har använts för att generera sökningen. Det är mest för att jag ska kunna hålla lite koll på om stopp-ord listan är tillräcklig.

Nästa steg i utvecklingen (imorgon?) är att implementera mitt gamla system för ”entity extraction”; att leta och märka upp namn i nyhetsartiklarna. Min förhoppning är att sådan information på sikt även ska kunna användas för att förbättra identifieringen av ”relaterade nyheter”.

Nyhetr.se kör nu Varnish för cache:ning av webbsidorna. Jag har inte provat Varnish tidigare, så det som kör nu funkar väl ”halvbra”, men det beror gissningsvis på att jag inte konfigurerat rätt. Jag inbillar mig att den är inställd på att cache:a alla sidvisningar, men jag är osäker på om så verkligen blir fallet. Varnish var i alla fall enkelt att installera. Den ska vara inställd på att kasta cookies vilket verkar vara ett krav för cache:ning. Jag är lite mer osäker på om den verkligen cache:ar anrop med inloggning, men den ska vara inställd för det.

Både Nyhetr.se och Frisim.com har fått några fler källor att indexera. Tyvärr är några av dem lite ”fejk” i och med att jag bara indexerar RSS-data för dem.

Bloggen uppdaterad till WP 2.7.1

Posted in Frisim on maj 22nd, 2009 by Clas – Kommentering avstängd

Nu har jag uppdaterat min gamla WP 1.5-blogg till WP 2.7.1. Jag är rätt säker på att jag också fått bort all injicerade SPAM-länkar från mina inlägg (manuellt!) i och med uppdateringen. Förhoppningsvis är också inte heller de gamla WordPress-php-filerna som möjliggjorde injiceringen kvar. Google verkar ha hittat problemet redan den 16:e april, men eftersom jag inte verkar ha fyllt i att Google ska maila mig meddelanden från Webmaster tools, så har jag naturligtvis missat detta problem ända fram till nu när plötsligt ett utkast som inte skulle publiceras publicerades. Jag har ansökt om en ”reconsideration request” hos Google och hoppas att min blogg får komma med i deras index igen. De skriver ju så fint:

Borttagning från Googles index 16 april 2009. Till ägaren eller den webbansvarige för frisim.com/blog. Medan vi indexerade dina webbsidor upptäckte vi att några av sidorna använde teknik som inte följer våra kvalitetsriktlinjer. Vi vill gärna behålla dina sidor i Googles index. Korrigera eller ta bort alla sidor som inte följer våra kvalitetsriktlinjer om du vill att vi ska göra en omprövning. Orsaken är förmodligen att webbplatsen har ändrats av en tredje part.

Vi får se om den någonsin kommer tillbaka…