Alla inlägg av

Marcus

webbutveckling

Textanalys för nybörjare

Inspirerad av framför allt chir.ag, där man enkelt kan jämföra teman mellan alla större tal av alla amerikanska presidenter, gjorde jag en egen liten applikation för att ta fram tag clouds (nyckelordsmoln på svenska?). Webbsidan genererar html och css som bara är att klippa och klistra in, så använd den gärna för att ta fram egna tag clouds.

Nyckelordsmolnen populariserades först av webb 2.0 applikationer som Flickr och Technorati där de användes för att underlätta navigering i gigantiska folksonomier. De har dock visat sig vara enkla medel för att snabbt se teman i långa texter och för att snabbt kunna jämföra olika texters teman med varandra. Jag är fascinerad över den enkla grafiska överblick över stora textmassor som de ger. De är kanske mest användbara vid jämförelser mellan olika texter när det finns en övergripande metod bakom jämförelserna, exempelvis jämförelser över tid, mellan branscher, olika grafiska områden eller politisk tillhörighet. Man skulle kunna jämföra bifallna bidragsansökningar eller affärsplaner med avslagna för att se vilka ämnen eller buzzwords som är mest framgångsrika. Ett annat exempel skulle kunna vara jämförelser mellan olika partiers miljöprogram för att se vad de lägger tonvikten på.

Jag testade skriptet med några olika typer av texter – evig ära och berömmelse till den som kan gissa vilka texterna är…

Resultatet blev i vilket fall hyfsat, men det märks att stoppordslistan behövs byggas ut och nästa projekt blir att implementera stemming (att slå ihop ord i olika böjning under ordets grundform). Om någon sitter på en php-implementation av någon stemmingsalgoritm för svenska så får ni gärna höra er. Det mest lovande jag hittat hittills är en beskrivning av en algoritm för svenska (med ett exempel i det ganska exotiska programmeringsspråket Snowball…) och en php-implementation av en algoritm för engelska. Det går ju att anpassa dessa, men eftersom jag varken är någon lysande lingvist eller någon expert på reguljära uttryck krävs det nog lite mer jobb innan den biten är klar.

webbutveckling

Web Typography Sucks

Nu är inspelningarna från SXSW upplagda och jag har precis lyssnat igenom Mark Boultons och Richard Rutters föredrag om typografi på webben. Hela inspelningen är på 60 minuter varav den sista tredjedelen är i formen av fråga/svar.

Föreläsningen går igenom en rad typografiska frågor utan något inbördes sammanhang:

  • Korrekt användning av speciatecken som citattecken (“ och ”, inte ”), talstreck (—, inte -) och multiplikationstecken (×, inte x eller *).
  • Möjligheten att anpassa visningen av specialtecken genom att innesluta dem i span-elementet och ange särskilda typsnitt där de ser bättre ut.
  • Hur man skapar ett vertikalt flyt genom att anpassa vertikala marginaler efter typsnittsstorleken.
  • Traditionell formatering av listor (med ordningstalen hängande ute i vänstermarginalen).
  • Hur ett gridsystem kan skapas genom att utgå från ett typografiskt grundmått (som 1 em) samt det gyllene snittet (egentligen approximationen 2:3.
  • Varför de flesta standardgrupper av typsnitt för att ange font-family i css är fel och hur man gör bättre val.

Helt klart värt att lyssna på även om jag tycker att de börjar med detaljer och först i mitten kommer in på mer centrala frågor. Eftersom det bara finns ljudupptagning så underlättar det att ta en titt på presentationsmaterialet som finns på en separat sida tillsammans med en del vidareläsning.

Jag har redan börja fundera på vilka typografiska förändringar jag ska göra här på bloggen…

webbutveckling

Skatteverket börjar följa webbstandarder

Skatteverket lanserade en ny layout på sin webbplats förra veckan och i samband med detta passade man på att skärpa upp tillgänglighet och användarvänlighet några snäpp. Nyheter är bland annat möjligheten att få innehåll uppläst för sig, enkla stilmallar för utskrift, en ljusare och luftigare layout samt kortkomandon och möjlighet att ställa in bland annat textstorlek och radhöjd. Framför allt så stödjer man numera moderna webbstandarder, men har valt att lägga ribban förhållandevis lågt då man valt xhtml 1.0 Transitional som doctype.

Efter att ha tittat igenom koden på några sidor och gjort några testvalideringar så tycker jag att det ser ganska bra ut för att vara en såpass omfattande webbplats. Den enda som jag kan se som avviker från xhtml 1.0 Strict är avsaknaden av fieldsets i formulären samt target-attribut på några ställen och det borde inte vara några problem att ordna. Kanske finns det sidor längre ner i strukturen som kräver en förlåtande doctype.

Nästa stora steg är att införa läsvänliga url:er. Vissa delar av webbplatsen har redan delvis läsliga adresser, tyvärr läggs alltid såväl datum som någon form av hash-värde till. Det borde räcka med datum eller månad samt ett ordningstal om det skulle finnas fler än en webbsida med samma namn under samma avdelning.

blandat

Skatteverkets nya indexeringstjänst

Både DN och Aftonbladet skriver om Skatteverkets anslutning till ett nytt internationellt samarbetsprogram (via Code Odyssey). Tydligen kommer Skatteverket att använda en indexeringstjänst för att gå igenom öppna webbplatser i hopp om att hitta oredovisad näringsverksamhet. Nyheten är intressant av flera orsaker.

Då det verkar som om Skatteverket kommer att lagra informationen som samlas in undrar jag vad det är som gör den här verksamheten laglig och oproblematisk medan Kungliga Bibliotekets indexering och lagring av den svenska webben var möjlig först efter en lagändring speciellt utformad för ändamålet?

Så vitt jag förstår så bryter även skatteverket mot upphovsrättslagens paragraf 11:
"Tillfälliga former av exemplar av verk får framställas, om framställningen utgör en integrerad och väsentlig del i en teknisk process och om exemplaren är flyktiga eller har underordnad betydelse i processen. Exemplaren får inte ha självständig ekonomisk betydelse."
Paragrafen kom till för att undanta webbläsarnas cache-minne från upphovsrättslagstiftningen och därmed göra det möjligt för besökare till exempelvis dn.se att lagligen läsa det som tillgänggligörs på webbplatsen. I de diskussioner om indexeringstjänster och upphovsrätt som tidigare förts (åtminstone utomlands) hänvisas ofta till att ägaren av den indexerade webbplatsen alltid har en möjlighet att förbjuda indexering genom att använda robots.txt – men då skattebotten inte kommer att följa robots-standarden så saknas denna möjlighet.

Jag tror dessutom att Skatteverket drastiskt underskattar de motmedel som kan sättas in för att undvika granskning av deras indexeringstjänst. Även om skattebotten maskerar sig med falsk user agent och genom långsam indexering så borde det inte vara alltför svårt att få reda på vilka ip-nummer som används. Det finns gott om folk som kartlägger indexeringstjänster och om inte de hittar den så kan man lätt bygga en egen robot-fälla.

För att undvika missförstånd kan jag tillägga att jag inte har något emot att skatteverket jagar skattesmitare, däremot tycker jag att man ska fundera på hur man gör det – både på de etiska och praktiska aspekterna.

webbutveckling

Stoppa kommentarspam utan att förstöra tillgängligheten

Här på bloggen började jag få problem med kommentarspam redan några veckor efter jag startade den. Den första tiden handlade det om enstaka poster i veckan men efter en tid så kunde det ha samlat sig 20-30 nya spamposter över en natt. Något behövde göras.

Några faktorer gör det ganska enkelt för mig att lösa spamproblemet: Jag skriver på svenska medan de flesta spambottar är kalibrerade för engelska, min blogg har så få besökare att den är ett väldigt lågprioriterat mål och jag använder ett egenbyggt bloggverktyg vilket gör att det inte finns några färdiga lösningar för just mitt spamfilter. Eftersom jag ville ha ett filter som skulle fungera ett tag framöver och som jag skulle kunna använda på andra webbplatser försökte jag ändå komma fram till en lösning som skulle vara effektiv även för lite större webbplatser, lätt att använda och inte stänga ute funktionshindrade besökare.

Bildbaserade CAPTCHAs uteslöt jag direkt eftersom de är omöjliga att använda för dem som använder skärmläsare och dessutom ofta svårare för vanliga besökare än spambottar att uttyda. Det går visserligen att lösa tillgänglighetsproblemet genom att komplettera med ljuduppspelning av vad som står i bilden, men det gör hela lösningen ännu mer komplicerad.

En annan vanlig lösning är att kombinera svartlistor, vitlistor, analys av kommentartexten och manuell moderering i olika konstellationer. Fördelen med detta är att skyddet ofta inte märks för besökarna. Nackdelarna är att även vanliga kommentarer kan stoppas och att det ständigt måste underhållas och kalibreras. Denna typ av lösning kan vara praktisk för riktigt stora aktörer (som får så många kommentarer att de kan se mönster eller som kan distribuera spamigenkänningen mellan tusentals individer) men skulle kräva för mycket underhåll för min smak.

Slutligen för valet på en enkel kontroll där besökaren fyller i den siffra som visas med bokstäver. Genom att seeda slumpgeneratorn med ett tidsberoende tal så behöver ingen information om vilken siffra som ska fyllas i skickas med till servern.

Om det skulle behövas är det relativt enkelt att öka komplexiteten:

  • Sifferintervallet kan ökas för att skapa fler möjliga alternativ.
  • Siffrans placering i meningen innan fältet där den ska fyllas i kan ändras genom att skapa flera olika meningar som alterneras. För att detta ska vara meningsfullt måste dock betoningen på siffran tas bort…
  • Komplexiteten i algoritmen som avgör vilken siffra som ska visas kan ökas. Eftersom den är kopplad till en tidsangivelse så är varje algoritm möjlig att gissa för den som ser tillräckligt många exempel.
  • För att öka svårighetsgraden kan systemet relativt lätt anpassas till att kombinera flera olika tal till enkla matteproblem som skrivs ut som text.

Som alla andra spamskydd baserade på någon form av CAPTCHA så fungerar inte skyddet mot manuell knäckning det kräver också att den som lämnar kommentarer förstår svenska hjälpligt. På det stora hela så tror jag dock att lösningen kommer att fungera bra, men det är väl bara att vänta och se.

För den som vill läsa mer om spamskydd och CAPTCHA är Wikipedias artikel som alltid ett bra ställe att börja på. W3C har en grundlig genomgång av tillgänglighetsaspekten och Juicy Studio har en ganska teknisk artikel om hur olika alternativa tekniker skulle kunna fungera.