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!

Archive for the ‘Projekt’ Category

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!

Kursbetyg.se – Recensera och granska utbildningar på högskolor

Friday, February 5th, 2010

Kursbetyg

Nu öppnar jag upp mitt senaste projekt för allmänheten, kursbetyg.se!

Sajten är till för dig som tänker läsa eller har läst en kurs på ett universitet eller en högskola.

Du kan bland annat sortera utbildningarna inom ett ämnesområde på flera olika kriterier, däribland svårighetsgrad, litteratur, examination samt kvalité och studentinflytande.

Har du några idéer om förbättringar eller finns det buggar som stör dig, kontakta mig gärna genom att kommentera detta blogginlägg.

Du får självklart vara med och bidra, klicka här för att gå direkt till recensionssidan.
/Robin

Nytt år – nytt projekt

Friday, January 15th, 2010

Jag har precis blivit klar med första delen av mitt nya projekt, en ny nischad recensionssajt!

Det har gått avsevärt mycket fortare än supportbetyg, tack vare den objektorienterade designen av just supportbetyg. Jag har allt som allt spenderat 10-15 timmar på det nya projektet, men mer tid kommer det troligen att bli.

Det som återstår är att bygga upp en enkel administration med hjälp av tablegear, samt att testa på CSS-ramverket 960gs!

Om några veckor eller så, då är det premiär!

YSlow – få hjälp med att snabba upp din sajt!

Sunday, December 6th, 2009

Yslow är ett smidigt integrerat webbutvecklarverktyg som mäter hur lång tid din sajt behöver laddas upp i användarens webbläsare. Verktyget kombineras i samband med den underbara webbutvecklingsverktyget Firebug.

YSlow mäter alltså hur snabbt din sajt laddas, detta är ibland lätt att glömma bort hur viktigt det kan vara, särskilt vid hård serverbelastning. Vissa tips är ganska okonventionella, exempelvis att sätta javascript längst ned på sidan, då webbläsaren har svårt att processa javascript med resten av sidan parallellt. Ett annat tips som YSlow ger är att undvika att dela upp css-filer samt javascript-filer i flera bitar, eftersom det tar längre tid att stänga och sedan öppna filer.

Genom YSlow sänkte jag laddningstiden för supportbetyg.se från 538kb till ca 200, en besparing på nästan 60%, och tiden för laddning från 3,5 sekunder till 1.25, även där en besparing på 60% i tid.

Varför är detta då viktigt? Detta är viktigt eftersom användaren är mycket otålig och lat. Förstår inte användaren vad sajten gör inom 5-10 sekunder, så surfar användaren snabbt bort, då är varje sekund dyrbar till att övertyga!

Admingränssnitt – att vara eller icke vara?

Sunday, November 29th, 2009

Jag funderade nyligen på det här med användargränssnitt för en publik webbtjänst, är det verkligen alltid nödvändigt att ha i bakgrunden?

Mina funderingar började när jag tittade tillbaka på hur tidsåtgången såg ut för utvecklandet av supportbetyg.se:

Total tid 100% (ca 200-300 h kodning)

  • 25% Grundkodning på front-end (Databas, php, affärslogik, MVC-mönster, funktionsfix)
  • 40% Finkodning på front-end (css, fixa småbuggar, jQuery-fix m.m.)
  • 25% Grundkodning på back-end/admin (Databas, php, affärslogik, MVC-mönster, funktionsfix)
  • 5% Finkodning på back-end/admin (css och största bugfixarna)
  • 5% annat, okategoriserat (SEO bl.a.)

Det var mycket svårt attuppskatta tiden det skulle ta att bli klar med sajten, främst genom önskedrömmar kanske?

Under en-två månaders tid sa jag att 90% var klart, tyvärr visade sig det att dessa 10% var ungefär lika stora som de första 90%. Lessons learned: När 90% är “klart”, återstår 90%!

För att återkoppla till utvecklingstiden, så gick ca 32,5% till att koda administrationsgränssnittet och göra iordning back-end funktioner.

32,5% eller ca 1/3 av tiden var ca 75-100 timmar av slit. Nu när sajten är igång och rullar, så använder jag ungefär 10% av alla de funktioner jag har gjort iordning. Överlag godkänner jag kommentarer och recensioner som folk har gjort, jag har skrivit lite bloginlägg samt faq, det är i princip allt.

I slutet av uppstarten la jag även in grundläggande info, kategorier, översiktskategorier samt företag. Jag la ner ca 6-7 h för att lägga in info.

Om jag istället hade valt att göra detta i phpmyadmin, skulle jag alltså tjänat in 2 och en halv heltidsarbetsveckor, eller en månads utvecklingstid (då jag pluggar samtidigt).

Varför kodade jag då ett admin-gui?

Genom lite självkritik inser jag att jag skrev detta mest för att det är så “man” ska göra! “En sajt utan admingränssnitt är inget alternativ”, “Det blir lättare att grafiskt få en överblick”, “Det är coolt” var nog saker jag tänkte på. Samtidigt så lär man sig att ett admin-GUI är en självklarhet, men ingen reflekterar om/när det behövs.

Fundera därför en extra gång när du utvecklar en publik webbtjänst från scratch, behövs verkligen ett admin-GUI? Jag tror att mycket tid går åt till detta, man gör allt mycket mer komplicerat än vad det behöver vara. Fråga dig därför om du inte kan göra samma sak direkt i databasen, utan mellanhänder, då sparar du tid och kan lansera din sajt fortare.

För att återkoppla till MISSILE: Kan jag skippa att koda detta utan att sajtens kvalité minskar?
För min del denna gång är svaret ett solklart ja.

En annan bra kontrollfråga att ställa sig:

Hur många funktioner behöver du, och hur komplicerade är dessa?
Jag har cirka 7-8 st SUDI:s (SELECT, UPDATE, DELETE, INSERT) för varje enhet i databasen, vilket gör att jag skrev 25-32 st olika funktioner, varav alla kunde enkelt göras i phpMyAdmin..

Slutsats: Det är lätt att vara efterklok..

Få en Google Wave invite gratis!

Saturday, November 28th, 2009

Google Wave Logo

Jag har kommit över några invites till Google Wave, den nya kollaborationsplattformen!

För att göra det hela lite mer spännande har jag beslutat att skapa en enkel liten tävling, där sju stycken lyckliga vinner en google wave här!

Det är enkelt att vinna, det enda du behöver göra är att skriva en recension om ett ärende du har haft hos ett företag på min nya sajt, supportbetyg.se!

Bedömning och regler

  • Tävlingen avslutas om ca 2 veckor, dvs den 12:e december
  • Det är ett extra + om recensionen är välskriven, välvårdad och intressant!
  • Det är ytterligare ett extra + om du får dina vänner att skriva en recension om ett kundtjänstärende eller om ett företags generella kundbemötande!
  • När du har gjort ditt inlägg, skriv in din mejl och namn (ska vara samma som det du skrev in på supportbetyg.se) i en kommentar till denna bloggpost, så är du officiellt med i tävlingen! Om du har fått med dig dina vänner, skriv deras namn här också!

Så för att vinna: Skriv en bra recension och för ett extra plus i kanten; få dina vänner att skriva en recension!

Lycka till!

MISSILE-modellens stöd vid kodandet av supportbetyg.se

Thursday, November 12th, 2009

Nu när jag har släppt en BETA-version av supportbetyg.se kan jag sammanfatta hur MISSILE-modellen hjälpte mig i byggfasen.

Lessons learned – Checklistan

Checklistan av MISSILE (som du kan läsa mer om här) var den del som jag hade mest nytta av, då jag nu är i lanseringsfasen av sajten.

Fråga 1: Kan det finnas något behov av webbtjänsten?

Denna fråga var antagligen något som dök upp i mitt huvud under mitten av sommaren, jag hade stora problem med avstängning av ett bredbandsabonemang och öppnandet av ett nytt av ett annat bolag. Jag var frustrerad och sur över den inkompetens som båda företagens supporter innehade. När jag snackade med vänner så hade de haft liknande erfarenheter, och jag kände att jag skulle vilja få utlopp och “skriva av mig”, så jag vände mig såklart till internet.

Det finns, grovt räknat, två webbsajter som tillhandahåller liknande tjänster kring recensioner och ytterligare tjänster som har recensionstjänst som ett tillval utöver sin kärnprodukt. Däremot fanns det ingen sajt som specifikt visade på hur ett företags support rankades gentemot andra liknande företag. Det fanns ingen statistik över detta heller.

Idén om en webbtjänst som tillhandahöll statistik, var enkel att använda och recensera, drömdes ihop.

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

Som tidigare sagts startade idén i huvudet på mig i mitten av sommaren. Jag kom igång ganska snabbt med att försöka förstå mig på cakePhP, men detta ramverk var alldeles för stort att lära sig, även om jag gillade MVC-mönstret skarpt. Jag kom igång på riktigt med kodningen i början av augusti och var klar till början av november, dvs ca 3 månader. Tiden som jag la ner på byggfasen var ca 200 timmar eller 5 veckors arbetstid. Detta gjordes såklart vid sidan om stuider och arbete.

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

Genom det teoretiska stödet i MISSILE förordnade vi ramverk och färdigskrivna bibliotek för att snabba upp utvecklingsprocessen. Efter en del letande bestämde jag mig för att testa att bygga webbappen i cakePhP, men kom snabbt på att detta inte passade mig. Så jag utvecklade mitt egna ramverk byggt på ModelViewController-mönstret. Detta var ofta ganska frustrerande att bygga upp och förstå, men nu när allt är färdigt är jag glad att jag byggde det.

Ett annat bibliotek som jag använde var jQuery. Jag hade väldigt liten erfarenhet av jQuery sen innan, men det visade sig att det var ett mycket enkelt system för att få fram bra effekter. Något jag gillar är att man kan nästla olika selectors så att events kan ske, även om jag inte har gjort det så mycket på supportbetyg.se

Fråga 4: Hur kan webbtjänsten integreras med andra webbtjänster?

Supportbetyg.se kan inte integreras med andra webbtjänster just för tillfället. Detta för att för få använder tjänsten just nu. Denna fråga går just nu i antagoni mot affärsvärdes-principen, som jag skriver lite mer om nedan.

Fråga 5: Vilken sorts publik webbtjänst tänker du lansera?

Denna publika webbtjänst riktar sig till alla som någon gång kommit i kontakt med en supportavdelning hos ett stort företag i Sverige. Den är inget tekniskt underverk och kan därför inte marknadsföras selektivt.

Fråga 6: Skapar aktiviteten i utvecklingsprojektet affärsvärde?

Denna fråga är mycket intressant, och antagligen den viktigaste. Något som jag märkte när jag kodade var avvägningen om vad som behövs och vad som inte behövs, dvs vad ger kunden värde?

Frågan fick en annan form under utvecklingstiden: Kan jag skippa att koda detta utan att sajtens kvalité minskar?

Bland annat har jag inte lagt ner någon stor del av tiden på att validera koden. Hur många användare tittar på om sajten är validerad, den siffran lär vara under 1%, så så länge kvalitén på sidan är god så brydde jag mig inte om att validera.

IE6-testning och IE6-optimering. Ungefär 20% av alla webbläsare är IE6, men 80% är det inte, IE6 kommer att fasas ut mer och mer under nästa år och det känns onödigt att anpassa sajten och använda tid till detta.

Integration med facebook connect. Detta var en idé jag hade, att folk skulle logga in med sina facebook-konton istället för att skriva anonymt. Problemet, eller rättare sagt verkligheten, är att folk är mycket lata. Om alla användare måste logga in för att skriva kommentarer och recensioner kommer sajten inte organiskt att växa lika snabbt.

Dessa frågor har hjälpt mig oerhört till att snabba upp bygget och fokusera på det som är viktigt. Nästa steg blir att lansera sajten, vilket är mycket svårare än själva byggandet.

Supportbetyg.se

Sunday, November 8th, 2009

Hej!

Nu lanserar jag supportbetyg.se, sajten där du kan recensera kundbemötande!

Sajten är till för dig som vill berömma eller fördöma det bemötande du har fått av svenska företag. Sajten är fortfarande i BETA-stadiet, men är 100% funktionell!

Klicka på bilden för att komma till supportbetyg.se:

supportbetyg.se

Eget projekt #2

Tuesday, September 29th, 2009

Arbetet med att få igång administrationen av sajten är på g. Sessionshanteringen har varit lite svårare än vanligt, den följer inte med som den ska för tillfället.

Däremot har jag börjat att få ordning på lite jQuery-funktioner som tidigare strulade, bland annat star-rating-pluginet som inte ville visa sig ordentligt. Jag kan tyvärr inte skicka eller visa halva stjärnor (Meta-data), men hoppas att jag snart kan förstå mera hur man gör.

Administrationen av användarnas inlägg börjar nu också ta fart, det blir en enkel variant för tillfället, får se om jag bygger ut den senare…

Jag siktar på att vara klar om ca 1-2 månader, beroende på hur mycket pluggande som är på g.

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.