RSS Feed!

About me

I am a business intelligence developer working at Bizware since August 2015. In this blog I will present code samples, primarilly in tsql but also findings in all other parts of the Microsoft BI-stack.


Disclaimer: All code should be considered as "as-is", i.e. badly tested and not working until extensive testing have been made by anyone reading the code. :)


Happy coding!

Posts Tagged ‘Web 2.0’

Consensus nya hemsida

Thursday, June 3rd, 2010

Idag är det officiell premiär för Consensus (HU-studenternas kår på Linköpings Universitet) nya hemsida!

Projektet startade i februari-mars och är nu klart! Jag hade ansvaret för pHp/funktioner och Ieva Sargautyte hade ansvaret för den otroligt fina designen.

Projektet var mycket kul, och det verkar som att Consensus också blev väldigt nöjda!

Grymma guider till SEO för wordpress

Thursday, September 17th, 2009

Här kommer några bra guider till SEO (Search Engine Optimization) uppdelat i kategorier baserad på svårighetsgrader.

Grundläggande SEO för wp:

Marcus Westbergs guide

Marcus Westberg har antagligen skapat den mest kompletta (svenska) guiden över hur du optimerar din wordpressblogg. Det finns en hel del enkla tips och trix här att hämta, som inte tar någon större tid att implementera. Guiden är mycket informativ och pedagogiskt uppbyggd, kanske därför den ligger först upp på google vid svensk sökning på seo och wordpress?

Orkar du inte fixa dessa små tweakar så rekommenderas även denna enkla plugin: All in One SEO pack från wordpresshemsida. Då är det bara att installera och det mesta fixar sig självt, fast det är ju inte lika skojsigt som att göra det själv?

Avancerad nivå:

Matt Cutts blogg / kategori: SEO

Vill du höra SEO-goliats röst? Då är Matt Cutts blogg intressant. Denna blogg är dock mer att se som en meta-SEO utsträckning där man kan höra mer om hur utvecklingen inom SEO går åt, se denna sida som SEO-filosofi mer än SEO-strategi.

HongKiat.com

Denna blogg har producerat en mycket mycket bra och avancerad guide inom spets-SEO som passar om du vill minimera laddningstider, komprimera css/bilder/js samt minska server-stress. Denna guide är inte bara till för wordpress, utan kan användas flitigt för alla sorters sajter.

På tal om laddningstider är denna plugin rena rama fyndet, eftersom den komprimerar dina javascripts till en liten fil för snabbare laddningstider. Jag rekommenderar även the broken link checker, som gör dig medveten om du länkar fel eller till en länk som inte finns.

Eget projekt #1

Wednesday, September 16th, 2009

Mitt egenutvecklade sajt går långsamt frammåt, men det är svårare än vad jag först trodde att bara sitta ned och arbeta åtta timmar i sträck. Dessutom är det ibland svårrt att få det att gå ihop med skola och livet runtomkring. Samtidigt känner jag att jag har fått mer koll på hur objektorienterad programmering fungerar i praktiken. Något av det speciella med php-programmeringen är användningen av (referens)variabeln $this. $this används mycket ofta för att “binda ihop” olika objekt med varandra, vilket betyder att det används hela tiden.

En bra guide till grundlöggande oo-programmering finns här, som även förklarar magin bakom $this.

Nåväl, mitt eget projekt börjar ta form. Jag är klar med den grundläggande affärslogiken bakom användar-GUI:t och ca 60% klar med jQuery-effekter och 90% med CSS. Det finns fortfarande lite problem med jQuery-star-rating-plugin:et när endast en stjärna av fem ska visas samt hur man visar metadata på ett snyggt sätt.

När det gäller admin-gränssnittet så kommer det ha liknande form som användar-GUI:t och kommer att användas av mig till att godkänna användarinlägg.

Jag har börjat experimentera en hel del med jQuery för att få fram vissa användarvänliga effekter. jQuery skiljer sig mycket mot pHp-kodning eftersom de har helt olika användningsområden, även om de finns överlappande sektioner. Det tog ett tag till att förstå syntax och mönster bakom jQuery, tur att det finns många bra guider.

Nästa steg i projektet:

Jag inser ibland att det är lönlöst att fortsätta om man sitter fast, oftast löser sig problemet av sig självt när hjärnan går in och få fundera själv. Nästa steg blir då att bygga upp admin-GUI:t och låta det andra vila.

MISSILE del 3: Checklista

Saturday, September 12th, 2009

Detta är den sista delen i artikelserien om MISSILE, har du missat de två första?
Del 1: Bakgrund
Del 2: Innehåll

Checklistan är till för att se över vad projektgruppen behöver ta ställning till. Dessa liknar de delar som gör MISSILE, men sätter viktiga frågor i fokus på ett helt annat sätt.

Kan det finnas något behov av webbtjänsten?

Detta är den första frågan som man bör ställa sig. Behovsfrågan kan man ta reda på genom att googla sin idé. Finns det ingen webbtjänst, kan man ha större chans till framgång, om någon nu vill använda tjänsten. Fördelen med en konkurrent på marknaden är att man då vet att behovet redan finns. Finns konkurrenten behöver man ”bara” skapa en bättre produkt. Chansen minskar att tjäna mycket pengar, men det gör även risken att misslyckas att nå ut till användarna, då behovet redan finns.

Hur snabbt kan du utveckla din idé, från behov till en lansering av prototypen?

Hastigheten mellan idé och lansering är mycket viktig, då webbutveckling som område går otroligt snabbt framåt på nya innovativa sätt att utveckla. Finns det inte tillräckligt med tid
eller kunskap kan projektet bli försenat. Skillnaden mellan ett traditionellt industriellt branschområde och webbutveckling är enorm när det gäller vad som är tekniskt möjligt. Har du inte tiden, fundera på att lägga ut det på någon som har den.

Kan du använda någon sorts ramverk eller färdigskrivna bibliotek för att snabba upp
utvecklingsprocessen?

Ramverk och färdigskrivna bibliotek kan snabba upp utvecklingsprocessen snabbt, då man får en fungerande plattform att stå på. Vid tekniskt elegant kod (läs: komplexa publika webbtjänster) kan dock bibliotek sakta ner laddningstiden för användaren, vilket då kan skada webbtjänstens anseende. Ha alltså i åtanke att remverk kan vara besvärliga att konfigurera
och kan sätta käppar i hjulen vid större projekt. Om applikationen är av en större karaktär rekommenderas därför en egenutvecklad kodbas.
Eftersom ramverk snabbt utvecklas har den akademiska världen inte publicerat något betydande forsknings material i frågan, även om stöd finns kring fördelarna vid objektorienterad systemutveckling.

Hur kan webbtjänsten integreras med andra webbtjänster?

Integrationsmöjligheter med andra redan existerande webbtjänster ökar chansen för att användaren använder webbtjänsten genom att redan existerande webbtjänster har användare.
Flera exempel på detta finns, bland annat facebook connect, openID samt myspaceID. Alla dessa gör att användaren inte behöver registrera sig, utan använda en redan tidigare använt ID, vilket gör att chansen att användaren testar applikationen ökar.

Vilken sorts publik webbtjänst tänker du lansera?

Denna frågar går hand i hand med behovs-frågan, och borde tas med en nypa salt, då den ”riktiga” användaren ibland inte passar in i den definition man har i åtanke. Använd inte en målgruppsanalys traditionella segmentering, använd mer generella termer såsom ”Folk som är intresserade av…”
Detta kan ge återverkningar på marknadsföringen av tjänsten. Genomslaget för exempelvis marknadsföring via sociala medier slår inte lika hårt mot ex. Svampplockare än mot it-intresserade, då svampplockare (generellt) har sämre koll på twitter då det tilltalar äldre människor mer än yngre. Använd mejl samt olika nätforum för mat (och svamp).

Skapar aktiviteten i utvecklingsprojektet affärsvärde?

För att inte ödsla tid behövs en framförhållning till lanseringen genom att hela tiden fundera på om en aktivitet som görs skapar mer värde än vad som behövs för att utföra denna. Ett
exempel på tidskrävande aktiviteter kan exempelvis vara dokumentation, men här kan även webbtjänstens funktionalitet, kontakter med reklambyråer m.m. inkluderas. Vad som ger
affärsvärde beror på lansering, utveckling, storlek på projektgrupper m.m.

MISSILE del 2: Innehåll

Saturday, September 12th, 2009

Detta är del två av tre inom artikelserien om MISSILE, här hittar du del ett och tre:
Del 1: Bakgrund
Del 3: Checklista

MISSILE står för Marknadsföring, Integration, Snack, Snabbhet, Interaktion, Lock-In samt Enkelhet (Marketing, Interactivity, Speed, Speak-ups, Integration, Lock-In and Essentials). MISSILE är både en akronym men även en metafor för sättet du behöver arbeta på. En missil är en snabb projektil som är till för att träffa ett mål, ditt mål, din framgång. Fas som du nog vet träffar inte alla missiler sitt mål, då är det bara att ladda en ny missil (projekt). Snabbheten att få iväg missilen och snabbheten att snabbt ladda om och använda en ny missil är av viktig karaktär för modellen.

Marknadsföring

Eftersom du inte har någon kund eller för den delen användare, måste du sälja in din sajt till eventuella användare. Det finns många sätt att göra detta på, bland annat genom att använda sociala medier. Att använda sociala medier (bloggar, twitter m.m.) är gratis. Använd dina vänner och tipsa andra bloggare och blogglistor om din sajt och din tjänst.

Interaktivitet

En självklar del i denna mix är interaktiviteten. För att väcka intresse behöver din sajt vara dynamisk (läs: web 2.0). Du kan inte få en statisk webbsida att bli intressant, något måste hända på den. Ditt material kan antingen vara användargenererat eller en blandning av egna bidrag och användargenererat material. Interaktiviteten ökar desto fler som använder din tjänst.

Snack

Snack är en ganska konstig term som vi använder. Snack kan enkelt översättas med den mer tillrättarevisade speak-ups och är nära länkat med marknadsföringen. En annan närliggande synonym är det engelska ordet hype. Det gäller alltså att få folk att tala om din produkt/tjänst. Marknadsföring är till för att få användarna att veta om din sajt, men snacket kommer först efter att de har varit inne på din sajt och bedömt den som användbar.

Snabbhet

Som tidigare har sagts, behöver du vara snabb i utförandet av ditt missile-projekt. Det går inte att vänta på att realisera idén, för förr eller senare kommer någon annan med ett liknande bidrag till nätet. Vi går tillbaka till metaforen om rallybilen. Rallybilen (MISSILE) står tillsammans med två långtradare (RUP och vattenfallsmodellen), båda kategorierna är bra till olika projekt. Kunden har lagt asfalt som långtradarna kan köra på (finansiering) men det finns ingen kund på grusvägarna i skogen. Internet-skogen är full av gupp, hopp, svängar och vattenpölar. Att långtradarna ska köra på dessa vägar och snabbt komma fram till mål (lönsamhet) är svårare än med rallybilen. Du måste manövrera snabbt och veta när man ska svänga för att hålla uppe hastigheten.

Integration

Dagens publika webbtjänster använder ofta tredjepartsmaterial för att ge mervärde åt kunderna. Hur kan du ge medvärde till dina kunder? Google, facebook, sökmotorer och prisjämförelsesajter skulle inte vara något alls om de inte litade på användar- företags-/ och butiksgenererat material. Att integrera ytterligare med olika sorters API är även det att föredra. Lägg även ut addthis eller sharethis-knappar för att öka antalet användare.

Lock-In

Kan du få dina användaren att återvända till dina sajter? Kan du integrera och bidra till att hålla din användare nöjd? Då har du kommit långt för att få en trogen användarskara. Desto trognare och desto bättre lock-in-incitament du har, desto bättre Snack får du och därmed bättre marknadsföring mot nya användare.

Enkelhet

Du ska inte bygga ett affärssystem, kom ihåg att hålla det enkelt: KISS (Keep It Simple Stupid). Enkelt och essentielt ska det vara, fokusera endast på kärnupplevelsen och gör inga hafsiga försök att få med ”allt”. Ibland är det bättre att ha mindre antal ”saker” på sin sida. Se exempelvis sökmotorbranschen, mellan msn search (numer bing), yahoo samt google. MSN har massor av diversifierade tjänster på samma sajt, yahoo har några stycken och google… inga, i princip. Google har 5 attraktionsobjekt: logon, sökfältet, knapparna, texten under, och texten överst. Mer behövs inte. Kom ihåg att du har bara några sekunder på dig att övertala användaren att testa din tjänst.

MISSILE I praktiken:

För att förstå bättre hur delarna sitter ihop, kan denna bild användas för att förstå sambanden:

MISSILE del 1: Bakgrund

Saturday, September 12th, 2009

Detta är den första delen i serien om MISSILE, de andra hittar du här:
MISSILE del 2: Innehåll
MISSILE del 3: Checklista

Det finns otroligt många olika metoder, modeller, synsätt och perspektiv inom system- och webbutveckling. Vissa är mycket generella, exempelvis RUP medan vissa är mer specifika i görandet, exempelvis XP eller den senaste trenden SCRUM. Alla dessa modeller har sina goda sidor, i rätt projekt med rätt storlek på rätt tid och plats.

Men mellan dessa storslagna metoder finns det ofta mellanrum. Mellanrummen som de försöker att täcka in men som inte kan täckas in.

Forskning görs nästintill alltid beroende av finansiella medel, läggs det inga pengar på ett forskningsprojekt, så kommer det i skymundan.

I den akademiska världen har detta skett i gränslandet mellan entreprenörskap på webben och informatik. Mellanrummet som har visat sig har aldrig blivit intressant för att ingen har betalat ut medel till att forska. Det beror antagligen på flera anledningar:

Entreprenörerna kan inte betala för sig, och har aldrig skapat en större gemensamhet för att kunna betala forskningspengar till den akademiska världen.
Entreprenörerna har haft fullt upp med att starta sajter/bolag och inte haft tid till att teoretisera kring sitt eget arbete.
Det har alltid funnits modeller/metoder samt perspektiv som aldrig passat tillräckligt bra, men som i någon mån har använts inom entreprenörernas projekt.

Realisering

Hur har då den akademiska världen ”tacklat” detta problem? Eftersom det finns en viss förskjutning inom akademisk forskning (genom att ett ”fenomen” behöver bli legitimt, läs: det behöver bli tillräckligt stort för att få forskningspengar från mossiga staten) på ca 2-3 år har det aldrig blvit en tillräckligt stor ”marknad” för en modell över webbutveckling, särskilt inom publika webbtjänster.

Jag och Erik Scherman valde att skapa ett utkast för en modell av just denna typ av webbtjänster, de publika.

Vad är publika webbtjänster?

En publik webbtjänst är en tjänst på nätet som inte kostar något för användaren att använda. Exempel på detta är sökmotorer, jämförelsemotorer, sociala medier samt olika sorters verktyg. Facebook, google, prisjakt, annonskartan… det finns många exempel på detta. Ibland, men inte alltid, finns det en premiumtjänst som tilval som kostar, men denna premiumtjänst dyker först upp efter en stadig skara användare redan använder tjänsten.

Vad gör denna genre speciell?

Denna genre är speciell eftersom det oftast är denna väg som webbentreprenörer använder sig av för att skapa sitt företag, och innehåller helt andra utgångsfaktorer än en vanlig ”business”:

  • Det enda ”riktiga” fasta kostnaden är ett webbhotell.
  • Det finns ingen kund (om du inte är konsult som jobbar mot en beställare av en publik webbtjänst)
  • Dina chanser att ”lyckas” beror på hur du realiserar din idé och ökar om du är först med den.
  • Du vet aldrig om din affärsidé kommer att lyckas fånga användare.
  • Utvecklingen av webben går fasansfullt fort, särskilt denna genre (jämför exempelvis med en e-shop)..

Som utgångspunkterna visar, handlar det mycket om att vara på rätt plats vid rätt tid med rätt idé. Sammantaget är affärsidén relativt enkel implementera och kostar egentligen bara serverkostnad som fast kostnad, men är svår att få lönsam.

Sett till de tidigare modellerna så finns det vissa problem, de är inte byggda till att hantera små, mega-iterativa webbprojekt, de är till för ex. Standardsystem med stor dokumentation och många aktörer inblandade. Det är lite som att sätta en busschaufför i en rallybil, fokuseringen blir fel.

Ännu mer fel blir det att använda ett sekventiellt handlingssätt, såsom den klassiska vattenfallsmodellen, där ett projekt tar över ett år varav förstudien på några månader.

Vad skulle förstudien i en publik webbtjänst kunna vara? Vad kunden vill ha? Nej. Vad kostnaden skulle kunna bli? Nja, nära men ändå inte. Vilket behov som finns? Ja.

Det ända som är intressant för ett publikt webbtjänstprojekt är egentligen om det finns ett behov? Finns det ingen som har testat din idé på nätet? Då kan det finnas ett behov. Finns det, men är dåligt utförd (läs: du kan bättre!), då är det bara att trycka på pedalen i din lilla rallybil och köra ut i nätdjungeln.

Vårt arbete

Jag och Erik Scherman intervjuade fem framgångsrika webbutvecklare som samtliga arbetade inom publika webbtjänster för att få fram svar på vad som ökade deras chanstagningar att lyckas. Vi jämförde detta med den senaste forskningen inom en rad skillda områden (marknadsföring, SEO, psykologi, gränssnitt m.m.) för att få en stabil teoretisk grund samt praktisk input för att snabbt kunna realisera sitt mål: en lönsam publik webbtjänst. Vårt resultat blev MISSILE.