söndag 24 maj 2009

Noterat under utveckling av ny LunarBlogGrabber

För några dagar sedan fick jag en förfrågan från en person som ville använda mitt snabbhack LunarBlogGrabber för att ladda ner, vad jag förstår, tusentals inlägg från sin blogg på Lunarstorm. Tydligen var inte mitt program riktigt vattentätt nog för den typen av jobb - jag har själv bara testat det med ett knappt hundratal inlägg, och det tog ändå en liten stund. Med tanke på hur hastigt hopknackat programmet är och att det faktiskt har varit en hel del intresserade användare (där de flesta verkar ha lyckats med sina nedladdningar) blev jag sugen att skriva ihop en uppdaterad version. Det är i sig inte några tekniska problem, men det dök ändå upp en del frågor längs vägen.

Lunarstorm har alltid krävt autentisering för åtkomst till användarnas innehåll - man är tvungen att logga in med ett giltigt Lunarstormkonto för att kunna läsa sin egen eller andras blogginlägg, titta på bilder och så vidare. I den nuvarande versionen av LunarBlogGrabber (shit alltså, jag skulle verkligen behöva hitta på ett bättre namn...), som är ett Windowsprogram, använder jag .NET:s WebBrowser-kontroll för att låta användaren logga in på sajten. Programmet tar sedan över den inbyggda webbläsaren och använder den för att bläddra runt bland användarens blogginlägg och kopiera dess textinnehåll. Det är en ansats som fungerar, men WebBrowser-kontrollen är inte jättesnabb eftersom den ska rendera alla sidor och dessutom tycks den tendera att läcka minne över tiden (den använder ju Internet Explorer i bakgrunden).

En sak jag upptäckte när jag började skissa på en ny version var att blogginläggen på Lunarstorm inte längre kräver inloggning. Det betyder att vem som helst kan surfa in på en Lunarstormanvändares presentationssida och därifrån klicka vidare bland det innehåll som användaren lagt upp. Det går förstås inte att lämna kommentarer och liknande när man inte är inloggad, men att läsa andras tidigare kommentarer går fint. Jag är inte helt säker på varför Lunarstorm öppnats upp på det här sättet, men jag kan tänka mig att det har att göra med att företaget bakom vill ge möjligheter för externa tjänster att integrera med sajtens innehåll.

Det verkar dock som att utvecklarna bakom Lunarstorm har missat vissa grejer. Exempelvis:
  • Som Lunarstormanvändare kan man välja att vara anonym, vilket innebär att man kan besöka andra användares presentationer och gå igenom deras material utan att de kan spåra besöket tillbaka till en själv. Det är även möjligt att ange att inga anonyma besökare ska få tillgång till ens material, vilket kan vara bra om man vill minska risken för att främlingar snokar runt bland ens grejer utan att tillkännage sig. Men: den spärren sätts ur funktion när besökaren inte är inloggad alls. En icke-inloggad besökare är ju per definition anonym, men ges alltså fri tillgång till samtliga användares publicerade material. Jag tror och hoppas att det här är en bugg, men det kan också vara ett medvetet, om än något svårförsvarat, designval.
  • Lunarstorm håller reda på hur många visningar som gjorts av respektive blogginlägg som en användare publicerat. På det sättet kan man se vilka inlägg som är mest populära, och man kan även se precis vilka användare som läst ett givet inlägg. Som jag förstår det är tanken att bara unika läsare ska räknas - om jag går in och läser en kompis inlägg idag och sedan igen om ett år räknas det fortfarande bara som en visning. Det gäller dock inte för ej inloggade besökare - där ökas läsarräknaren med ett snäpp varje gång man laddar om sidan, vilket gör att man utan problem skulle kunna förstöra lässtatistiken för varenda publik Lunarstormblogg om man ville. Detta är sannolikt en ren defekt.
Den första punkten här spelar ingen större roll för mig i mitt utvecklingsarbete. Faktum är att den gör det enklare - så länge man utan inloggning kan surfa in på alla användares sidor och läsa deras (publika) inlägg behöver inte programmet vara inloggat, vilket är mycket positivt. En del användare har ställt sig frågande till om det är riskfritt att mata in sitt lösenord i ett fristående program så där, och jag tycker att det är en mycket befogad fråga. Det har visserligen blivit allt vanligare att webbtjänster ber om folks användarnamn och lösenord till deras webbmail för att kunna "hitta ens vänner", men jag tycker att det är en tråkig utveckling där i sig legitima tjänster lär användarna ett beteende som kan få dem att råka illa ut vid kontakt med mindre seriösa webbplatser. Kan jag slippa fråga användarna om deras Lunarstormlösenord så gör jag gärna det.

Den andra punkten är lite mer problematisk. I praktiken innebär den att mitt program, om vi antar att det inte kommer att agera som en inloggad användare, kommer att påverka lässtatistiken för de blogginlägg som man väljer att ladda ner. Och i och med att programmet inte kräver något lösenord blir det möjligt för vem som helst som använder programmet att öka antalet läsningar för helt andra användare, vilket kanske inte är så kul för dem.

Å andra sidan är det fullt möjligt även utan mitt program. Och det känns fel att min programvara ska bygga runt en defekt som Lunarstorms utvecklare bär ansvaret för. Med andra ord lutar jag åt att låta den kommande versionen av LunarBlogGrabber agera helt anonymt och vara kapabelt att ladda ner godtyckliga användares publika blogginlägg.

Så ser det ut i nuläget. Jag kommer ha mycket att göra med andra mer kommersiella åtaganden under veckan som kommer, så jag vågar inte sätta något releasedatum för nästa version, men jag hoppas att det blir snart!

Inga kommentarer:

Skicka en kommentar