30 juni 2012

Jag börjar lära mig att programmera

Jag är jättedålig på att skriva här regelbundet. Tanken var att jag skulle dela med mig med min kunskap inom PHP och mina projekt som webbutvecklare. Anledningen till att jag inte skrivit något är helt enkelt för att det inte har hänt någon och jag har inte lärt mig speciellt mycket.

Jag hade helt enkelt tappat lusten. Jag träffade en ny kompis i september, han presenterade mig för en man med eget företag som behövde hjälp med sin webbsida. Jag sa att jag fixar det snart, men tiden dröjde. Det kändes som att jag hade mycket annat som kändes mer angeläget och som jag prioriterades. När jag väl började titta på det hittade jag inte rätt filer på FTP:n och hade ingen klar syn på vad jag skulle göra (snygga till designen). Jag har fortfarande inte tagit tag i det, fast det gått mer än ett halvår... För att det jag ska ha motivation till att börja med ett projekt måste det vara något jag själv brinner för. Jag behöver lära mig att säga nej direkt istället för att säga ja och sen inte hålla vad jag lovar.

Jag hade också ett eget projekt igång i vintras där jag gjorde ett spel på Facebook. Det blev klart så långt att jag har spelat och haft roligt med de flera gånger med kompisar, men jag har inte orkat snygga till det så att det är något som kan publiceras, göra reklam för på Facebook eller säljas. Jag väntar egentligen på att en kompis från Uppsala som varit med och kommit med idéer kan träffas så att jag får respons och vi kan fortsätta utveckla applikationen tillsammans.

Den allra mesta programmering jag har gjort senaste året har varit på jobbet. Jag har försökt skriva om alla mina applikationer så att de blir objektorienterade, men det känns som det mest blir mer rörigt och komplext än innan i koden. Ibland är det bra, som att jag har en inställningsfil där all styrning för den har jag gjort i en PHP-klass. För att lägga till en ny inställning lägger jag nu bara till en ny rad i PHP-klassen. Men jag har inte haft någon klar syn på hur koden bör se ut eller vilket paradigm (tankesätt) jag ska använda.

En stor utmaning jag har för alla mina webbprojekt är att anpassa sidorna för en mobiltelefon. Jag blir ofta tillfrågad om att göra appar av applikationerna. Jag är mer inne på att göra en webbanpassad version av applikationerna. På så sätt behöver inte användarna ladda hem en app för att det ska fungera, det blir lättare att komma åt den och få det att fungera likadant för olika mobiltelefoner. Sen tror jag att jag kan återanvända mer kod jämfört med om jag ska börja utveckla appar. För att få ett snyggt säkert gränssnitt till mobilanpassade webbsidor började jag titta på några ramverk. Sencha var det första jag testade. Jag fastnade ganska snart och fick tips av en kompis på Facebook att testa KendoUI. Det var lite bättre, men jag hade fortfarande problem eftersom jag inte jobbat med MVC-paradigmet tidigare. MVC står för Model, View och Controller och tanken är att tankesättet underlättar att hålla isär design och kod.

Under sommaren har jag fått massor programmeringsprojekt i jobbet jag ska:
  • Göra en mobilanpassad version av min webbapplikation för vikarier
  • Utveckla vidare ett system där man kan skriva ner personalanteckningar
  • Skapa ett nytt webbaserat ärendehanteringssystem som vi är i stort behov av på jobbet nu
  • Vi ska vidareutveckla min webbapplikation där chefer har ett fönster mot LAS-informationen från webbben av anledningenen att det delvis är nya LAS-regler som börjar gälla i höst.
  • Dessutom sa chefen här om dagen att vi ska börja kolla på koden för resten av systemet så att jag kan hjälpa honom med det.
Vanligtvis på företag behövs det ett helt utvecklingsteam för att bara ta hand om de tre första punkterna. Nu är jag ensam på företaget som heltidsanställd utvecklare med programmeringskompetens. Chefen utvecklar också, men han är ju chef så har inte så mycket tid att programmera och utveckla, även om han hinner med förvånansvärt mycket utveckling, buggfixar etc på helger.

Nu har jag en kollega till min hjälp, trots att han inte programmerar själv har han många synpunkter. Han brukar sitta bredvid mig ibland och först gäspa kraftigt när jag börjar gå igenom koden. Sen babblar han massa synpunkter på saker jag ska göra om och böra bättre. Och jag tänker nej nej, mitt sätt är bättre det där går inte att göra. Fast sen efter att han har babblat en stund till inser jag ofta att, jo han har nog en poäng det kan nog bli bra som han föreslår ändå. Bara att få direkt feedback i mitt arbete är väldigt viktigt. Man blir lätt hemmablind som programmerare och då är det bra att ha någon med en ny synvinkel.

Efter att ha tillfälligt fastnad på två av projekten ovan satt jag mig och började med ett helt nytt ärendehanteringssystem. Vi har ett ärendehanteringssystem på jobbet, men Camilla som utvecklat det har slutat och därför kan det inte utvecklas vidare. Bara en så enkel sak som att tilldela ärenden till en anställd som började efter Camilla slutade är inte möjligt utan att jag sätter mig in i den koden. Och då är frågan om det nästan inte går snabbare att börja med ett helt nytt system, möjligtvis med en del inspiration från Camillas system. Fördelen med att göra ett nytt webbaserat system är också att vi kan få nya funktioner som mina kollegor frågat efter. T.ex. att kunderna själva skickar in ärenden direkt i systemet samt att de online kan följa upp status på ärende istället för att vara tvungna att ringa oss.

Vi har en konsult som ibland rycker in och jobbar hos oss och då sitter hela dagen och hjälper mig vidareutveckla systemen. De dagarna brukar bli väldigt effektiva och jag får viktiga tips för att programmera vidare. Senast jag kallade in honom fixade vi min SMS-tjänst som har krånglat en längre tid. Han tipsade mig också om ett PHP-ramverk som heter Codeigniter som bistår med mycket hjälp för programmering. Han sa att det skulle bli snygg kod och gå väldigt snabbt att programmera med hjälp av CodeIgniter.

Så när jag skulle börja med det nya projektet Ärendehantering så bestämde jag mig att från grunden göra det med CodeIgniter. Jag är van vid att programmera helt från grunden. Nån gång har jag använde en färdig kalenderfunktion som är ett färdigt script, men annars skriver jag mestadels proceduell PHP-programmering blandad med HTML och JavaScript där jag skriver mina egna datorbasfrågor direkt i samma fil. Först när jag satt med CodeIgniter svor jag för att det inte alls gick speciellt snabbt. Men efter att ha suttit med det en vecka koncentrerad arbetstid nu börjar jag tycka om det. Koden blir snyggare, det blir mycket säkrare, funktionerna blir mer standardmässiga och lättare att anpassa och jag får hjälp med många nya funktioner som jag inte ens vet hur man gör i PHP från grunden.

Koden delas upp i tre delar enligt nämnda MVC-modell. Model, View och Controller (fråga mig inte vad det heter på svenska, det har jag inte lärt mig än).
  • View är det användaren ser. De andra klasserna ger en färdig array med all data, alltså alla variabler, som sidan behöver visa på sidan. Därför ska den inte behöva innehålla någon intelligens, script eller databasanrop utan bara hur HTML-sidan ska se ut.
  • Controller är själva motorn i applikationen. Här finns alla beräkningar och anrop till funktioner om när något behöver göras på sidan.
  • Model är en databasmodell som innehåller alla anrop till databasen. Snyggt hämtar ut resultat till en array som sedan kan hanteras av controllern.
Jag börjar få ett grepp om paradigmet men är inte helt säker på att jag ens har rätt i min beskrivning ovan eller vilket som är det bästa sättet att lägga upp funktionerna i controllern. Men det kommer. Jag har lärt mig mycket bara de senaste dagarna och tycker att det är roligt att programmera just nu.

Ett problem jag har haft med flera av mina hemsidor är att de blir bombaderade med spam, att inloggningen inte är tillräckligt säker och smidig och en sida har t o m blivit hackad. CodeIgniter innehåller färdiga funktioner för att göra hemsidan säkert. Det finns automatiska funktioner som städar alla inparamterar som annars kan användas för att komma åt databasen eller mata skräp till sidan. Det finns en klass som håller reda på sessioner, något jag tycker är lite krångligt på de hemsidor jag skapat som nu innehåller inloggningsfunktioner. Just inloggningen var den första stora funktionen där jag verkligen såg styrkan i codeIgniter. Jag lärde mig genom att se en utbildningsfilm på en blogg här: http://net.tutsplus.com/sessions/codeigniter-from-scratch/ Det tog cirka en vecka, men efter flertalet steg-för-steg-guider, googlande och just den videon började jag få koll lite på det och mixtra med controllern själv istället för att helt kopiera guiderna.Ytterligare ett bevis till mig själv att om jag bara har tålamod och orkar sätta mig in i något så klarar jag av det ganska bra.

En sak som jag fortfarande inte vet hur man gör i PHP är att skriva om URLs så att de blir snyggare. T.ex. länken till det här blogginlägget. Förut skrev jag blogspot.se/blogid=24263616. Men Blogger gör det mycket snyggare genom att använda min egen rubrik så att URL:en blir fredrikolsson.blogspot.se/2012/06/jag-borjar-lara-mig-att-programmera.html. Codeigniter gör det automatiskt för mig så jag behöver inte tänka på hur man egentligen gör i PHP.

Förutom CodeIgniter har jag de senaste månaderna börjat jobba med jQuery och JSON. Det första är ett massivt JavaScript-bibliotek som underlättar bl.a. AJAX-anrop. JSON är en standard för att skicka data mellan script/webbsidor/servrar/moduler på ett snyggt sätt, nämligen i en kompakt standardiserad sträng. JSON är som XML fast mer kortfattat. Kanske att min kommunikation med de andra modulerna inom Winlas också kunde skickas med JSON framöver, istället som semikolon-separerade strängar, men vi får se. Teknikerna har funnits gratis tillgängliga för programmerare i flera år, men jag har varit ganska inskränkt i mitt och inte upptäckt dem förrän nu. Därför känns det bra att jag nu tar steget och börjar lära mig att programmera lite mer som andra professionella webbutvecklare nu vanligtvis gör.

21 juni 2012

EM 2012

Spelledig dag från fotbolls-EM idag. Då tänkte jag passa på att blogga lite om mästerskapet. Jag har sett alla matcher hittills, några två gånger då min bror ville ha dem inspelade och jag såg dem igen med honom. Det här är nog fel forum för att blogga fotboll, men då slipper jag att få någon kritik från de som inte håller med mig...

Jag är nöjd med mästerskapet så här långt, även fast Sverige är utslagna. Sverige spelade sin sista match igår och gick ur turneringen med flaggan i topp. Alla grupper har bjudit på dramatik, mål i samtliga matcher och spänning in till slutet. Bara Irland visade att de inte riktigt höll måttet, de blev utspelade egentligen alla matcher.

Sedan VM 98 brukar skriva ner världslag, med de spelare som utmärkt sig mest hittills. Då jag inte längre använder penna och papper skriver jag ner dem här. Jag tänkte dessutom ge plats åt motiveringar för var och en av spelarna. Jag brukar ta ut tre lag; ett med de allra största stjärnorna, ett med nya stjärnskott och spelare som överraskat och ett med de 11 som varit den största besvikelsen/sämst.

EM:s bästa spelare
Målvakt: Gianluigi Buffon, Italien. Hela Italien imponerade i gruppsspelet. Buffon står som vanligt som en säker sista utpost.
Högerback: Mathieu Debuchy, Frankrike. Ingen högerback har imponerat jättemycket men Debuchy är en klasspelare som gjorde bra insatser mot England och Ukraina.
Mittback: Olof Mellberg, Sverige. Kung Olof avslutar landslagskarriären med två riktigt riktigt bra matcher. 3 mål, snygga brytningar. Hur ska vi klara oss utan honom framöver? 
Mittback Mats Hummels, Tyskland. Liten överraskning i tyska startelvan, men har gjort en jättesäsong i Dortmund. Bryt- och passningssäker och var t o m nära att göra mål mot Holland.
Vänsterback: Fabio Coentrao, Portugal. Modern ytterback (som man sa för 15 år sedan) som följer med upp i anfallen men även klarar försvarsspelet på sin kant.
Defensiv mittfältare: Andrea Pirlo, Italien. I bra form efter ligaguld med Italien. Slår gudomliga passningar och för det Italienska spelet som har sett bättre ut än på länge.
Defensiv mittfältare: Luka Modric, Kroatien. Höll nästan på egen hand på att slå ut Spanien i sista omgången. Kvalitet i passningar och bollkontroll varje gång han får bollen.
Vänsterytter: Memut Özil, Tyskland. Tysklands spelregissör. Blir kanske för många spelare som vill föra spelet i den här uppställningen. Men Özil har varit för bra för att jag ska vilja lämna honom utanför. 
Offensiv mittfältare: Xavi, Hernandez, Spanien.
 Många säger att Cristiano Ronaldo är världens näst bästa spelare efter Messi de senaste åren. Men med tanke på Barcelonas framgårngar och Xavis centrala roll i laget så hävdar jag att Xavi nog varit snäppet bättre totalt sett. I EM har han varit på samma höga nivå som de senaste 15 åren.
Högerytter: Andres Iniesta, Spanien. Världsmästarnas allra bästa spelare hittills i EM. Dribblar ofta flera spelare när han har bollen, svår att ta bollen från. 
Anfallare: Zlatan Ibrahimovic, Sverige. Stark och dominant. Gör drömmål i varje match. Vad mer kan man begära?

EM:s Största överraskningar
Målvakt: Przemyslaw Tyton, Polen. Kommer in mot Grekland efter en utvisning på ordinarie målvakten Szczesny från Arsenal och börjar med att rädda straff. Gör det så bra mot Ryssland att han får fortsatt förtroende i sista matchen.
Högerback: Gebre Sellassi, Tjeckien. Offensiv, spännande ytterback. Första färgade spelaren i Tjeckiens landslag!
Mittback 1: Gordon Schildenfield, Kroatien. Petade rutinerade namn som Simonic och gör det bra. Höll kvar Kroaterna i matchen mot Spanien.  
Mittback 2: Kyrigakos Papadopoulos, Grekland. Ett stort löfte. Kom in i första matchen pga skada och har varit Greklands bästa spelare hittills. 
Vänsterback: Simon Poulsen, Danmark. Var en besvikelse i VM för två år sedan efter bl.a. ett självmål. Mycket bättre i år då hela Danmark har överraskat positivt. Säger mycket om deras spel att vänsterbacken är med i anfallen mot lag som Holland och Portugal. 
Defensiv mittfältare: Petr Jiracek, Tjeckien. Hårfagre högeryttern kan även spela defensiv mittfältare. Gjorde ett klassmål mot Polen som blev avgörande för Tjeckiens avancemang.
Defensiv mittfältare: WIlliam Kvist, Danmark. Höll tillsammans med Zimling koll på alla Hollands stjärnor. Gjorde också en jättematch mot Portugal.
Högerytter: Michael Krohn-Dehli, Danmark. När alla pratade om Bendter och Eriksen offensivt var Krohn-Dehli Danmarks bästa spelare. Avgör mot Holland hotar tillsammans med Bendtner både Portugal och Tyskland. Danmark ska vara väldigt nöjda med sitt mästerskap.
Offensiv mittfältare: Vaclav Pilar,Tjeckien. Blev bättre och bättre för varje match. I slutet mot Polen såg Pilar ut att vara en spelare i världsklass. Kul att Tjeckien har en ny lovande generation på gång efter att den gyllene generationen med Nedved, Poborsky och Ujfalusi.
Vänsterytter: Alan Dzagoev, Ryssland. En av de allra mest spännande spelarna i hela EM. Var grymt bra mot Tjeckien och även bästa ryska spelare mot Polen och Grekland även när inte resten av laget spelade så bra. Synd att vi inte får se mer av Dzagoev i EM.
Anfallare: Mario Mandzukic, Kroatien. Sylvass mot både Irland och Italien. På vippen att hans mål ledde till att Kroatien till en skräll och slå ut någon av de förra världsmästarna.

EM:s Sämsta spelare
Målvakt: 
Shay Given, Irland. Har lite otur mot Kroatien och är egentligen en världsmålvakt. Men Given kan inte vara nöjd med den här turneringen. Släppte in överlägset flest mål.
Högerback: 
Gregory Van Der Wiel, Holland. Inför VM för två år sedan ett stort löfte och sas att bli en av världens bästa högerbackar. Gör ingen bra match mot varken Danmark, Portugal eller Tyskland  och har för mycket att göra med skickligare offensiva motståndare för att kunna följa med upp i anfallen. 
Mittback 1: Sergei Ignashevich, Ryssland. Laget spelade drömfotboll i två matcher men ett gigantiskt misstag av Ignashevich kostar dem slutspelsplatsen.
Mittback 2: Ron Vlaar, Holland. Holland har gott om bra offensiva spelare. Men försvaret höll inte i EMs bästa grupp. När Matijsen blev skadad var man tvungen att spela Vlaar i första matchen. Såg även osäker ut mot Portugal.
Vänsterback: Stephen Ward. Gjorde bort sig rejält mot Kroatien i en omdiskuterad offiside-situation då det visade sig att få av Irländarna har tekniken som krävs på den här nivån. Gick ännu sämre mot Spanien.
Defensiv mittfältare: Keith Andrews, Irland. Spelar på toppen av sin förmåga men räcker ändå inte till. Syns tydlig klasskillnad när han ställs mot Modric. Hela laget blir förudmjukade mot Spanien då t o m domaren tacklar ner Andrews. Rött kort mot Italien. Andrews räckte helt enkelt inte till i det här mästerskapet.
Defensiv mittfältare. Rasmus Elm, Sverige. Gör alldeles för många dåliga felpass mot Ukraina och det visas en klar skillnad när Anders Svensson ersätter. Gör sedan en bra match som vänsterytter mot England, men som defensiv mittfältare har inte Elm rutinen än för att axla rollen än.
Högerytter: Arjen Robben, Holland. En av spelarna i toppfotbollen jag tycker minst om. Har spelat i Chelsea, gnäller ständigt på domaren och filmar hela tiden. Dessutom gör hans frisyr att han ser 20 år äldre ut än vad han egentligen är. Robben försöker skapa anfall, men det hjälper inte att han aldrig passar utan alltid skär in i banan och skjuter över. Blev utbytt i slutet mot Portugal, ingen kul avslutning för Hollands största stjärna.
Offensiv mittfältare: Christian Eriksen, Danmark. Haussad inför EM, helt osynlig trots att resten av Danmark gör en jättebra insats i samtliga matcher.
Vänsterytter: Ola Toivonen, Sverige. Klarade inte den rollen som vänstermittfältare alls mot Ukraina. Missar i hemjobbet vid Ukrainas första mål men lyckas inte heller vara med i offensiven över huvud taget. Bättre som anfallare i sista matchen, men bränner klara chanser.
Anfallare: Aleksandr Kershakov, Ryssland. En av flera anfallare som är viktiga för lagets spel med sin targetförmåga att hålla i bollen. Men som anfallare måste man kunna göra mål också.

24 augusti 2011

PHPBB Forum

Nu har jag äntligen lärt mig något nytt som PHP-programmerare och tänkte försöka dela med mig av min kunskap. Det jag tänkte skriva om idag är internets vanligaste programvara för forum. Mjukvaran heter PhpBB där BB står för Bulletin Board och koden är skriven i PHP med öppen källkod.

Att starta ett forum på det här sättet är jätteenkelt. Själva installationen består i av att packa upp en zip-fil och lägga på sin webbserver. Därefter finns en webbaserad guide som tar dig igenom installationsprocessen. Om du bara har koll på strukturen på din webbserver och hur man ansluter till webbhotellets databas så ska det inte vara några problem. Efter installationen finns 100-tals alternativ att välja bland för att få precis det forumet du vill ha.

Jag har sedan tidigare haft två PhpBB-forum. En för mitt korplags hemsida och en på företaget jag jobbar för, Winlas. Korplagets forum var dock inte använt på några år eftersom webbsidan i sig var så pass avancerad att det inte riktigt kändes att det behövdes. Nu hade jag däremot ambitionen att få till ett nytt forum som skulle vara mer integrerat i hemsidan och därmed förhoppningsvis användas i högre utsträckning. PhpBB har moddar och öppen källkod så att det ska gå att integrera den i din hemsida. De här modifikationerna ville jag göra:

  • · Integrera inloggningen med behörighetssystemet på huvudsidan.
  • · Exportera användarlistan från hemsidan och skapa samma användare, med samma lösenord i forumet.
  • · Stänga forumet så att inga nya användare kan registrera sig. Jag använder användarlistan så att spelare kan registrera sig till träningar och matcher och vill inte ha in användare jag inte har koll på.
  • · Visa senaste inläggen på forumet bland nyheterna på startsidan. Nyhetsfeeden är blandad i datum- och tidsordning där t.ex. matchresultat, info om träningar, blogginlägg och träningstider blandas. Användarna får själva välja vilken typ av inlägg de vill se genom en filtreringsfunktion.

Logga in på forumet ifrån startsidan på webbplatsen

Min inloggningsfunktion på startsidan var tidigare inte helt säker och lite ostabil. Jag tog därför tidigt beslutet att helt ersätta den gamla inloggningen med forumets inloggning. En sak som är bra med PhpBB och att det är så spritt och används av många webbutvecklare. Därför är det lätt att googla fram svar på vad man än kan tänkas fråga om. Inloggningsformuläret är bara några enkla input-rutor som skickar post-information till en funktion på forumet. Man behöver skicka med inloggningsnamn, lösenord, vilken sida användaren ska dirigeras till och om användaren vill fortsätta vara inloggad. Längst upp på sidan med inloggningsformuläret behöver man dessutom skapa en klass som skapar en session. Jag hade inga större problem så här långt. Tänk bara på att sidan man ska hamna på efter att loggat in dröjer några sekunder innan den laddas, då man först ser en bekräftelse på forumet att man har loggat in. På varje sida som ska kontrollera inloggningsstatus behöver man inkludera forumklassen. Jag lade den koden i en egen fil som jag includar längst upp på varje sida där det behövs.

Exportera en användartabell till forumets databas
Den här funktionen finns inte i ursprungliga forumet, utan jag var tvungen att hämta en expansionsmodul som kan stoppa in data ifrån en csv-fil i databasen.
Jag använda det här verktyget: http://www.phpbb.com/community/viewtopic.php?f=65&t=1494875
CSV-listan skapade jag genom en databasfråga där jag manuellt skrev ut semikolon och avskiljare i en while-loop ifrån den data sql-frågan generarade. Jag tänkte behålla den gamla databastabellen och har en dubbel uppsättning av användartabeller. PhpBBs inbyggda för inloggning i forumet/på hemsidan och den gamla som fortfarande lagrar behörighet och kopplingen till spelarprofilen. För att länka ihop tabellerna har jag en SQL-fråga på varje sida, där själva användarnamnet är främmande nyckel och länkar ihop tabellerna.

Stänga forumet för nya användare
Att inaktivera nyregistrering var det lättaste steget i min integration. Det finns en kryssruta när man loggar in som administratör på forumet under Allmänt -> Inställningar för användarregistrering och bocka för ”Inaktivera registrering” bland alternativen för kontoregistrering.

Visa senaste foruminläggen på hemsidans startsida
För att få till en full integration mellan hemsida och forum var det en viktig del att integrera senaste händelserna på forumet i nyhetsflödet på startsidan. Flödet består av en databastabell där jag manuellt sparat en post varje gång någon ny information sparas på hemsidan. Det finns för tillfället 23 olika typer av händelser. Att lägga in ytterligare en databaspost varje gång någon skriver ett inlägg i forumet var för avancerat då jag var tvungen att ändra för mycket i källkoden. Jag gick istället en enklare väg, med PHP-programmering som jag kan och är bra på: Databasfrågor och arrayer. Senaste inlägget sparas i en egen databastabell och går att söka upp med en relativt enkel SQL-fråga som sorteras efter tidpunkt inlägget skrevs. Jag får sedan fram hela det önskade dataflödet genom att först mellanlagra resultatet från SQL-frågan som hämtar ut loggen i en array, sedan lägga till arrayen med senaste poster i forumet och tillslut sortera arrayen efter datum och tidordning. Kanske inte en helt ulitmat lösning, men det fungerar och slutresultatet ser bra ut.

Nu blev det här mycket en beskrivning om hur min webbsida fungerar, men jag hoppas att någon hittar något som går att tillämpa på erat projekt. Det går att göra jättemycket med PhpBB-forum och det finns jättemycket information bara en Google-sökning bort.

07 juli 2011

Sorg

En kompis klagade på att jag bloggar för sällan här. Därför tänkte jag lägga in en uppdatering, som delvis förklarar varför jag inte har så mycket att säga. Jag varnar för att det kommer bli ett ganska pessimistisk och deprimerande inlägg som inte handlar något alls om webbdesign.

En jättetråkig sak hände i måndags. Min morfar dog. Mamma ringde på kvällen och meddelade. Jag reagerade lite konstigt. Först sa hon att hon hade tråkiga nyheter och jag satte mig ner. Mitt första svar var inte herregud vad tråkigt utan "Jag misstänkte det". Inte för att jag hade någon förnimmelse om morfar utan för att ingen brukar ringa mig på en måndag i vanliga fall. Det kom ändå lite hastigt. Han fick iofs en stroke för 2 år sedan, men han bodde kvar hemma med mormor och hade mått relativt bra senast jag hörde. Jag träffade honom sista gången i början av april. Han hörde lite dåligt, var lite rosslig i halsen efter stroken och såg kanske inte jättepigg ut. Men han var klar i huvet, vi pratade lite om sport t.ex.

Jag är ateist och är ganska övertygad om att det är slut där. Morfar fick inte lida utan det gick fort utan någon lång sjukdom. Han är jag inte orolig för. Det som jag tycker är det sämsta med döden är att det ett slöseri på kunskap och erfarenhet. Han har lärt sig saker under ett långt liv som nu bara är borta. Han var riktigt duktig på att lösa korsord, bra på att organisera och rolig. Jag är mest oroad över mormor som nu för första gången måste klara sig själv. Hon har också haft en stroke och behöver lite hjälp hemma. Hon har sagt att hon ska försöka bo kvar i huset, med lite städhjälp och någon som gör frukost till henne kommer det gå. Jag var och hälsade på henne igår tillsammans med min bror. Hon fick blommor och en lång kram av oss när vi kom. Hon är såklart jätteledsen och jag märker på henne att hon är rädd för att bli ensam. Mamma kom till henne i måndags och var till henne till igår, då jag skjutsade hem henne från Ulricehamn. Moster sov över i natt. Men någon gång måste man lämna henne ensam och jag är rädd att det är då tankarna börjar komma. Mormor och morfar borde ha varit gifta i ungefär 60 år. Det måste kännas väldigt konstigt att partnern helt plötsligt försvinner. Mormor har inte jättemånga väninnor som hon brukar umgås med. En granne kom över för att lämna blommor och mormor sa att de måste komma över så hon får någon att prata med. Alla grät. Jag måste också försöka följa med till Ulricehamn med mamma och pappa oftare. Men det blir ju självklart ändå inte samma sak. Jag lever i en helt annan generation, hon förstår inte något av mitt tekniska liv.

Morfar var relativt pigg in i det sista. Grannen såg honom vinka i fönstret dagen innan. Mormor och morfar åt kvällsmat som vanligt och hade kollat på Vem vet mest när morfar började få upp fradga och blod ur munnen. Mormor ringde ambulans, men det skulle dröja innan de kom, så mormor undrade om hon skulle ringa min moster, som är skolskötersa. Morfar tyckte inte de skulle besvära henne, men hon ringde ändå. Grannens dotter som är sjuksköterska kom också över och de började tillsammans göra hjärt-lungräddning. Grannens dotter kände ingen puls. När ambulansen kom efter 20 minuter fortsatte försöken att få igång hjärtat, de använde defibrillator och adrenalinsprutor direkt in i hjärtat. Mormor kommer ihåg att de hela tiden sa att de inte skulle röra honom. Det måste vara pga elchockarna. De fick lite liv i honom eftersom de höll på så länge som de gjorde, men i slutändan kunde de inget göra. Det hade inte hjälpt om ambulansen kommit tidigare utan det var nog tyvärr ganska kört från början. Både mormor, mamma och moster tyckte det var skönt att han slapp lida. Det var mindre än en halvtimme mellan han var helt pigg och tittade på Vem vet mest till han var borta. Det är kanske så man vill gå om man får välja?

Nu tänkte jag skriva lite om min egen sorg. Jag är känslig av mig och börjar lätt gråta. Jag tycker dock inte det är någon större idé att gråta i min ensamhet. På måndagkvällen hade jag inte hunnit bli ledsen än. Jag var bara själv hemma som vanligt, satt vid datorn och spelade Oxie och Farmville och chattade lite om sommarcupen vi ska ordna med fotbollslaget. På tisdag morgon vaknade jag jättetidigt (tio i sex) och tänkte på morfar och framför allt mormor och om hur hemskt det måste varit för henne när morfar föll ihop. Jag jobbade på som vanligt, har inte sagt något till mina arbetskamrater ännu, förutom via Facebook. Att jag är ledsen påverkar inte mitt jobb negativt. Snarare tvärtom att jag jobbar på mer än vanligt för att tänka på något annat lite, samt för att jag vill göra något nyttigt när jag blir påmind om att vår tid är ändlig. På kvällen trodde jag att vi skulle åka till mormor, men min bror gick tipspromenad med några vänner istället och jag ville inte vara själv hemma. Jag har varit ledsen och lite deprimerad sedan ett år tillbaka när det tog slut med min flickvän. Vad jag har varit mest deprimerad för är att jag inte har några nära vänner som kan trösta mig när jag är ledsen. Men den nedstämdheten har berott på att inget händer i mitt liv. Sorgen som kommer nu är för att hela sammansättningen i min släkt ändras. Morfar lämnar en lucka. Mormor blir ensam, julfirandena kommer bli annorlunda etc. Jag behövde någon att prata med. På jobbet SMS:ade jag med en ny kompis jag skaffade i Vartofta förra veckan. Jag sa att jag var ledsen för att morfar dött. Hon sa att hon finns för mig, men kunde tyvärr inte träffas den kvällen. Istället skrev jag till min kompis i Floby. Hon finns där för mig och jag åkte ut och träffade henne. Hon åt sallad på en pizzeria medan jag berättade lite om vad som hänt. När två av hennes kompisar kom pratade de en stund, jag gick t o m därifrån en stund medan de rökte eftersom jag är allergisk. Men sen frågade min kompis Sandra hur det var med mig, men "du vet vad". De andra frågade vad som hänt, jag berättade och började för första gången sedan det hänt att gråta. Det var trevligt att bara vara runt folk istället för ensam den kvällen. Jag behöver kanske gråta för att bearbeta sorgen. Efter det har jag gråtit mer. Inte mycket hemma, men hela förmiddagen på jobbet grät jag och jag gråter nu. Jag har ett asocialt jobb där alla sitter och tittar på varsin skärm. Jag tog inte lunch med de andra utan väntade till efter Camilla ätit. Men jag vet inte om jag vill prata om det med dem. Jag tycker det är jobbigt att prata under tiden jag gråter. Vill nog mest bara hålla om någon, men någon sådan finns inte. Därför var det skönt att krama mormor igår. Mamma fick också en kram.

24 mars 2011

På väg till Delphi-kurs i Göteborg

Det var länge sedan jag uppdaterade den här bloggen. Nu minns jag inte ens när det var senast. Och sitter på tåget mot Göteborg, så har ingen Internetåtkomst så jag kan kolla. Då jag glömt någon tidning att läsa tänkte jag istället försöka underhålla mig på tågresan genom att skriva lite här.

Nu är vi som sagt på väg mot Göteborg där jag och två kollegor ska ha utbildning för Delphi, programmeringsverktyget vi använder för våra grundprogram. Chefen hoppas att den här utbildningen kan vara inkörsporten för mig för att börja programmera mera. Nu jobbar jag inte alls med Windowsapplikationer utan ägnar största delen av min arbetstid åt att underhålla mina webbapplikationer. Jag tror inte jag kommit så jättelångt där jämfört med sist jag skrev, det är tre moduler jag sysslar med:

  • · WinLas Vikariekalender och WL Webbokning. Där vikarier anger när d e kan jobba och arbetsplatser bokar tillgängliga vikarier.
  • · Winlas Webb. Där chefer ser LAS-tid för att veta när personal kommer att konverteras till fast anställning.
  • · Winlas Personalanteckningar – ett webbaserat anteckningsverktyg journalsystem där kommuner kan skriva ner anteckningar om personal. Det finns också möjlighet att sekretessmärka anteckningar och välja vilka som ska få läsa vad.

Den sistnämnda applikationen är ny sedan sist. Det är mitt första helt egna projekt och jag hoppas få sälja in den till Kalmar kommun.

Förutom webbapplikationera har jag ansvar för att uppdatera vår hemsida och jag brukar få fixa med våra loggor och grafiska broschyrer då jag har högst kompetens med Photoshop på företaget.

Utanför jobbet har jag stannat upp lite med mina övriga projekt. Spelet XinY har i princip självdött. Det samma gäller tyvärr bokstavligen för Mössebergsfestivalen, då dess drivande kraft Lars-Åke Albinsson gick bort härom året. Det jag har kvar är korplagets hemsida, som är så komplett nu att inte så mycket behöver göras. Triathleten Davids sida pysslar jag också om då och då. Nu har jag också fått i uppdrag att göra en hemsida åt hans sambo som driver en stickbutik. Jag är dock i ett sånt ekonomiskt läge att jag inte känner att jag har behov att ta fler jobb om det inte är något som jag verkligen ty– tycker det är ett kul projekt. Fast anställning på Winlas och små utgifter gör att jag känner att jag har det bra ställt. Istället ägnar jag min fritid åt Farmville och Playstation 3. Ärligt talat har jag varit lite nere det senaste året sedan det tog slut mellan mig och min flickvän. Dessutom är jag väldigt lat.

Jag har funderat på vem som läser den här bloggen egentligen? Jämfört med andra ställen jag skriver väljer jag här att vara ganska formell med det jag skriver. I mina privata bloggar kan jag bli lite väl självutlämnande ibland, i motsatts till IRL där jag har hög personlig integritet och ett starkt behov av att ha kontroll på varje situation.Vem tror jag läser det här? Jag har märkt att om man Googlar på ”Fredrik Olsson Falköping” så kommer den här bloggen nästan längst upp på träfflistan. Något jag märkte när en kille som jag tränade badminton tillsammans med direkt visste vem jag var eftersom han också heter Fredrik Olsson. Likadant om man söker på ”Vikariekalendern” eller ”Winlas”. Och jag vill väl kanske inte att mina användare av webbapplikationerna ska få se för mycket av mina privata tankar.

26 augusti 2010

Stockholmsresa och Integration till lönesystem

Tänkte använda dagens blogg till en kombinerad reseskildring och förberedande av dokumentation som jag lovat skriva om mitt arbete.

Igår reste jag upp till Stockholm, tillsammans med vår chef Bo Johansson, för att träffa berörda parter i Lidingö som vill ha en integration till sitt lönesystem. De vill att den ska vara klar om två veckor. Vi åkte upp för att få lite fart på det.

Mitt arbete har gått lite segt den senaste tiden. Jag är ingen van Delphi-programmerare utan har fått ganska mycket hjälp, först av Fredrik Bäckman och sedan av chefen Bosse för att få fart på själva integrationen. Jag tyckte det var komplicerat jämfört med den kommunikation mellan program som vi är vana med. Mitt program ska läsa av vår databas på uppgifter och skicka in dem till lönesystemet. Läsa vår databas är naturligtvis enkel. Det är skicka till lönesystemet-biten som blir komplicerad. Egentligen är det vanliga anrop med XML till en webbservice. Men jag missade den kursen på högskolan, så jag tycker det var ganska komplicerat också. Vi har fått gott om dokumentation ifrån företaget som tillverkat lönesystemet.

Det är tre webbservicar som ska anropas, en för varje typ av data man vill komma åt i lönesystemet. I Delphi är det en SOAP-komponent som ska anslutas till en viss adress med data uppbyggt på ett viss sätt. Före användandet av komponenten får man förbereda datan så att den kommer i rätt XML-format, skicka med lösenord som kommer från en fjärde webbservice. Efter man skickat datan får man ett svar, antingen en lång lista med t.ex. anställda eller arbetsplatser eller en klarsignal att datan vi importerat in i lönesystemet är okej. Det här fick jag slita med i några månader för att få det rätt. Och jag är ändå ganska osäker eftersom det inte är testat mot mer än ett fåtal testuppgifter.

Det var därför vi ville åka upp till Lidingö, för att se hur det hela fungerade när man först testkör "mitt" program och sedan ser vilka uppgifter som kommer in i lönesystemet. Det var på många sätt fel tänkt:
  • Vi hade inte verifierat med lönesystemet om integrationen skulle fungera mot Lidingös data.
  • Lönesystemet kommer inte låta oss testa ett halvfärdigt program och riska att få in skräp i sitt system.
  • Vi har ingen kontaktperson i Lidingö som förstår hur det hela skulle fungera.
  • IT-enheten i Lidingö hade knappt fått någon information, fram till mötet, om vad som skulle installeras.
I måndags satt vi och jobbade till klockan 20 för att få klart vårat ovan nämnda program. På tisdagen jobbade jag hemifrån och var jättestressad, svor massa åt programmet och Delphi som inte fungerar som jag vill och kom egentligen ingen vart. Först vid 16-tiden fick jag tag på Bosse som kunde reda upp mina tankar lite och säga vem jag skulle ringa. När jag väl fick tag på en kontaktperson ifrån lönesystemet blev jag än mer orolig. Han frågade om de ens hade installerat [integrationsprogrammet] där. Ehm nån sa något om VPN och IT har gjort det tror jag, svarade jag ungefär. Sen skulle vi behöva ett lösenord för att komma in i Heroma. Ett problem jag har är att prata i telefon. Jag föredrar klart mail eller MSN. När jag skriver försöker jag få med så mycket information som möjligt. När jag pratar försöker jag avsluta samtalet så fort som möjligt. Jag ringde därefter till vår IT-kontakt i Lidingö. De hade inte heller så mycket koll. Någon hade sagt att de skulle sätta upp en VPN-tunnel. Mycket mer än så visste de inte. Däremot sa hon att hon hade ett lösenord som vi skulle få på onsdagen. Fast det var naivt att tro att just det lösenordet skulle vara rätt lösenord. Senare skulle det visa sig att de inte ens lagt in användaren i systemet.

På tåget upp fick jag ändå lite mer optimism då chefen hjälpte mig att avsluta vår del av integrationsprogrammet. Åtminstone hjälpligt så vi har något att visa under dagen. Chefen är positiv och tror det löser sig när man väl är däruppe och i grunden är det en bra inställning att ha. Jag är mer försiktig realist... Första timmarna i Lidingö gick det också jättebra, när vi visade våra nyheter i programmet var de hur positiva som helst. Sen kom den svåra biten.

För att få åtkomst mot Internet fick vi ett gästkonto av receptionen (t o m IT-avdelningen måste be receptionen om uppgifter för att få trådlöst Internet!). Vi försökte köra vårat program på vår egen laptop i tron om att vi lite halvt var i kontakt med Heromas server. Först kom vi åt uppgifter, men kom på att det fortfarande var testdatat vi arbetade mot. Någon hade hört någon säga att vi skulle byta URL-adress i vårat program. Vi visste bara ett ställe där det låg en URL och testade den adressen som IT hade fått. Ingen lycka. Chefen kom på att det kunde vara gästkontot vi loggade in på som var fel. Så vi lade in en stor (flera 100 MB) WinLas-installation på en av Lidingös datorer. Det fungerade inte heller.

Nu försökte vi få tag på rätt person som kunde hjälpa oss. Det är en ganska stor apparat då utanför WinLas fanns väldigt många personer som har koll på en väldigt liten del. I vårt företag är vi vana vid att Bosse kan allt och har koll på allt. Så fungerar inte inte företaget som sköter lönesystemet. Och så fungerar inte Heroma. De här personerna försökte vi kontakta under dagen:
  • Fredrik, vår kundkontakt för lönesystemet. Satt i möte hela dagen.
  • Niklas, som har koll på programmeringen i samband med integrationen. Visste dock inget om tekniken för att sätta upp det.
  • Patrick, som vill ha dokumentation inför integrationen. Pratade med honom dagen innan.
  • Mats, vars nummer jag fick av Patrick för att vi skulle ha någon kontakt inom lönesystemet under dagen. Men han visste inget.
  • Mikael, vars namn stod på en pärm med integrationspapper. Han svarade inte.
  • Krister, som var driftansvarig för integrationen.
  • Charlotte, som stod som kontaktperson för VPN-uppkopplingen. Svarade inte heller.
  • Tomas i Lidingö, som skulle sätta upp en VPN-koppling. Och gjorde det men inte hade någon mer Info.
  • Stefan i Lidingö, som installerat ett stödprogram för integrationen.
  • Agneta i Lidingö, som gav oss ID-nummer som skulle koppla ihop verksamheterna i lönesystemet med arbetsplatserna i vårat system. Men så långt kom vi inte idag.
När vi inte fick tag på någon som visste hur det skulle gå till fortsatte vi envist testa oss fram med att byta ut en liten variabel i vårat integrationsprogram. Resten av dagen försökte vi runt 20 olika kombinationer genom att öppna portnummer samt olika varianter av adresser. Vid varje ändring vi fick kopiera in vår programfil (2 MB) på Lidingös dator. Jag var nog på lite dåligt humör vid den här tiden och hoppas det inte märkte för tydligt. När jag programmerar vill jag se någon tendens till att komma framåt eller målet inom synhåll för att det ska vara givande. Vi gav upp strax före tre då chefen också kände att vi inte kom längre. Det vi gjort var dock tillräckligt för att vi skulle kunna fortsätta hemifrån, nu när vi kunde lägga upp nya versioner av vårt program via en fjärranslutning. På tunnelbanan kom Bosse på att det kunde vara något trivalt som att vi hade skrivit HTTP istället för HTTPS. Men vi var betydligt längre ifrån än vad vi trodde.

På tåget hem fick vi mailsvar ifrån Fredrik. Det som saknades för integrationen var:
  • Installation av webbservice i Lidingö
  • Lönesystemet ska öppna funktionaliteten för Lidingö
  • En användare för Lidingö ska skapas i lönesystemets sida av integrationen
  • Uppdatera arbetsplatserna i lönesystemet
Alla fyra stora uppgifter som IT i Lidingö och lönesystemet behöver samarbeta för att lösa. Mycket möjligt att det tar flera veckor innan folk har tid, rätt folk kontaktas, ev utbildas och beställningar göras. Vi som trodde var nästan var klara om vi bara pillade lite mer i en parameter...

24 februari 2010

Min första Facebook-applikation

Kul att jag får respons på mitt inlägg om Facebook-applikationen av personer som jag antar googlar fram min blogg. Skriv gärna till mig om ni har några frågor eller tips gällande mina inlägg!

För att följa upp förra inlägget tänkte jag därför att det kunde vara intressant att se vad som har blivit av min Facebook-applikation, som var i uppstartandefasen i mitt förra inlägg. Applikationen gick bra att starta igång som jag beskkrev i förra inlägget: Som en IFrame-applikation byggd med PHP och JavaScritpt med Facebook-connect som kommunikationsmetod till Facebooks API. Jag har på så sätt lärt mig att skapa notifikationer, feeds samt hämta användarnamn, användarID och miniatyrfoton ifrån Facebook.

Applikationen ser i skrivande stund ut enligt följande:

Målet är att skriva in så många svar/objekt/X innan tiden rinner ut. I skrivande finns det lite mer än 100 quiz upplagda. Geografi och Sport har flest quiz eftersom det är inom de ämnena det är lättast att komma på begränsade (diskreta som det heter på matematiskt språk) delmängder. Det finns också flera quiz inom film, TV och litteratur där man ska rabbla upp karaktärer i en serie, publikationer som en person har medverkat i etc. I religion och historia ska man bl.a. rabbla upp kungalängder och bibelkunskap.

Ett sekundärt motiv med applikationen är att träna min egen allmänbildning. Jag har fått stenkoll på Sveriges kommuner, alla världens nationer, schlagerfestivalen, Sveriges kungar efter Vasa med mera. När man väl kommer in i applikationen och lär sig principen är den jättebra för att plugga in fakta av just den typen där man ska komma ihåg massa objekt inom ett område. Jag har också lagt till funktionen att andra användare kan lägga upp sina egna quiz med just denna baktanken. Om man behöver plugga in alla ädelgaser i periodiska systemet, svenska regeringen eller huvudstäder i Afrika så går det utmärkt att skapa ett XinY-quiz i det ämnet. Skapandeprocessen är kanske fortfarande ganska avancerad, med min egen syntax på hur man separerar objekt och lägger till alternativa stavningar. Men med lite datorvana och logiskt tänkande borde det fungera.

Användarna just nu är främst mina närmsta vänner på Facebook. Jag är annars lite dålig på att göra reklam för mig själv och har inte annonserat alls för spelet. Jag har heller inga annonser i själva spelet, då jag inte gör det för att tjäna pengar utan mer för att lära mig själv webbprogrammering och får erkännande som webbprogrammerare. Men jag räknar med att när applikationen väl får genomslag så kommer den att sprida sig själv, genom notifikationer och att användare postar sina rekord på sin Vägg/Wall/Feed/Flöde/Sida eller vad du vill kalla den på Facebook. Applikationen är nu 4 månader gammal och det dyker fortfarande upp buggar eller användbarhetsproblem, vilket gör att jag väntar lite med att göra stor reklam för den. Jag testar applikationen först och mest i Firefox och Google Crome. Det kan därför smyga in några problem i Internet Explorer, speciellt gamla versioner som applikationens användare märker innan jag. Då är det bra att det är mina vänner som är användarna.

Jag har några idéer på hur applikationen kunde utvecklas. En rolig grej vore om man kunde införa multiplayer. Två spelare försöker komma på vartannat objekt med 5-15 sekunders tid per objekt. Det kräver dock ganska mycket, en spelserver med rum och utmaningar, mer data som lagras under själva spelet, realtidsuppdateringar mot databasen under spelets gång etc. Men om jag får tid ska det inte vara omöjligt!



18 oktober 2009

Att utveckla en Facebook-applikation

Som ni vet arbetar jag som vardags på ett dataföretag som programmerare/webbutvecklare. I jobbet har jag specialiserat mig på att sköta om vår hemsida samt utveckla webbsidor i PHP då det är det min spetskompetens ligger inom. Vid sidan av det jobbet har jag tagit mig an ytterligare några uppdrag för att designa hemsidor.

Mina webbprojekt

· IFK Falköping - kommunens näst bästa fotbollslag
Har nyss övergivit sidan jag har byggt upp för att gå över till ett alternativ som är integrerad i Svenska Fotbollförbundet. Jag hjälper till med bytet.

· David Svensson - Sexa på SM i triathlon
Hade en befintlig sida som jag har byggt ut och gjort lättare att uppdatera. Funktioner jag har infört är bl.a. gästbok, köp-och-säljsida och bilduppladdning.

· Mössebergsfestivalen - En musikfestival i Falköping
En vanlig webbsida, utan dynamiskt innehåll. Festivalen gör uppehåll i år eftersom deras initiativtagare och projektledare avled i början av året.

· Och sist men inte minst: Bänkvärmarna - mitt älskade korplag
Det här är min ögonsten som jag har lagt min själ i och genom att jag har gett det så mycket tid lagt grunderna för mina kunskaper inom webbdesign. Lenny har sagt att ”Allsvenska lag har inte så avancerade webbsidor”. Jag har fått alla i laget och många runtomkring att kika in på sidan och besöka den regelbundet. Några av funktionerna jag är mest stolt över är Anmälning till träningar, (Som tack vare bra användning och lätt gränssnitt gör att vi har stenkoll på vilka som kommer på varje träning), Tipstävlingar för cuper och serier, Taggning av bilder (liknande Facebooks), Nyhetslogg med det senaste som är uppdaterat på hemsidan (nu är webbsidan så dynamisk att det inte går att ha koll på allt som händer utan den här funktionen), Fanclub där våra supportrar kan registrera sig, ändra i en profil och visa sitt stöd för laget. Fancluben har nu över 50 medlemmar. Ganska bra för ett halvdassigt korplag?


Jag jobbar bara 75 % på WinLas och tanken är att övriga 25% ska gå till att jobba med de här projekten samt utveckla min kunskap inom webbdesign och PHP-programmering. De flesta av de här uppdragen är ideella och det är så jag vill se samhället. Dessutom har jag svårt att ta betalt för jobb jag utför, då det sätter en annan press på mig att verkligen prestera. Ideellt arbete är oftast roligare då det är kravlöst. Speciellt när det handlar om att bara göra en webbsida åt en person, förening eller organisation (som är mer en kul grej jämfört med andra typer av ideellt arbete). För mig är det viktigare att lära mig och utvecklas som webbprogrammerare på ett roligt sätt än att tjäna mycket pengar.


Alla dessa projekt känns dock relativt klara nu. IFK Falköping får jag mindre ansvar för nu när ”min” sida överges, Davids sida har jag byggt upp en grund på efter bästa förmåga. Hans vidare förslag till att bygga ut sidan anser jag vara mjuka krav och inget jag prioriterar för tillfället. Mössebergsfestivalen har som sagt gjort en paus i år och är ändå inget som jag lägger mer än någon timme i månaden på. Bänkvärmarna har jag lagt lite för mycket tid på ibland. Men nu känns sidan stabil och det finns egentligen inte mycket fler funktioner jag behöver införa på sidan.

Varför Facebook?

Istället för att lägga mer tid på något av det här känner jag att jag vill nå ut med något nytt och en utmaning som jag då vill ge mig på är att skapa en applikation på Facebook. Där kan man lätt nå ut till en stor mängd användare. Det går att använda Facebooks användardatabas med personuppgifter för att validera inloggning samt hålla ordning på rekord/uppgifter i applikationen. Jag vet att jag har kunskaper inom programmering som kan användas till i stort sett vad som helst som kan göras som en webbaserad tjänst. Det är svårare att komma på en riktigt bra idé som jag vill satsa på än att utföra själva programmeringen.


Jag hade några förslag som jag funderade på att starta upp som Facebook-applikationer. Jag har några favoritapplikationer på Facebook som jag gärna gör en egen version av. Jag kan dock ännu inte Flash-programmering, så ett nytt Farmville var inte aktuellt. Jag ville ha en vanlig webbaserad sida som m h a JavaScript och AJAX kan utvecklas till ett dynamiskt spel.

Mitt första projekt

Idén jag beslutade mig för att gå vidare med som första projekt kom ifrån min flickvän, Cailyn, och är en typ av quiz där man ska skriva upp så många objekt man kan i en delmängd inom en given tidsram. Exempel kan vara alla huvudstäder i Europa inom 6 minuter, alla svenska landskap på 3 minuter eller, något lättare, alla Snövits dvärgar på 30 sekunder. Det går lätt att variera svårighetsgraden mellan olika quiz genom att ändra antalet objekt och tiden. Spelet är också lärorikt då användaren efter att ha gjort en quiz får facit och sedan kan göra om den och på så sätt repetera och lära sig ny kunskap. Framförallt testas spelarens minne och stavning, första versionen har inga förlåtande drag utan objekten måste stavas exakt på samma sätt som frågeinmataren har gjort dem.

Själva spelet gick ganska snabbt att sätta upp. Jag ”tog inspiration” från en sida Cailyn visade mig, förbättrade spelmotorn och framförallt grafiken och användarvänligheten runt omkring. Sedan är jag ganska skicklig på att skapa dynamiskt innehåll ifrån en statisk hemsida. Quizet Cailyn visade mig var endast ett spel där man skulle skriva samtliga FNs medlemsstater på 10 minuter. Jag gjorde sidan dynamisk så frågan och objekten hämtas ifrån en databas. Det går därefter snabbt att skapa egna quiz om vad som helst. Det största jobbet bestod sedan i integrera hela spelet i Facebook.


Just som jag börjat med integrationen såg jag dock att det redan fanns ett spel som heter Sporcle med samma idé. Jag lät mig dock inte nedslås utan fortsätter med min egen version. När det finns 10 olika varianter av Farmville kan det väl finnas 2 versioner av det här quizet? Jag har några idéer på att förbättra spelet med highscorelistor, utmana vänner etc. Men största skillnaden är att spelet är på svenska. När ett spel till stor del handlar om att stava rätt är det stor skillnad att låta spelaren skriva på engelska jämfört med svenska. Publiken blir inte lika stor, men applikationen blir förhoppningsvis mer uppskattad av mina vänner och generellt i Sverige.

Problem vid Facebook-integrationen

Jag stötte på tre stora problem när jag skulle starta själva integrationen till Facebook. Spelet fungerade och låg stabilt på min server men när den hamnar på Facebook finns det några grundläggande HTML-funktioner som webbutvecklaren inte längre har kontroll över.

· Teckenuppsättningen måste vara UTF-8

· Vanliga länkar fungerar inte som vanligt då man måste transportera sessionsdata

· Facebook-connect måste vara installerat för att man ska kunna kommunicera med vanliga Facebook-funktioner.


Teckenuppsättningen vållade mig ganska stora problem. Jag är van vid att arbeta med västeuropeiska charsetet ISO-8859-6, men Facebook använder utf-8. För att inte namnuppgifter som innehåller å, ä eller ö ska se konstiga ut var jag tvungen att konvertera min sida till utf-8. Svårigheten här låg i att mycket av applikationen handlar om strängjämförelser i själva spelet. Jag försökte dessutom kryptera objekten så att de inte skulle gå att snappa upp via källkoden. Krypteringen löste jag genom ordinal-värden. Detta fungerade med västeuropeiskt charset men inte med utf-8. Jag försökte tre olika tillvägagångssätt: Ordinalvärden, utbyte via array och Bin2Hex kod, men å,ä,ö ville inte fungera, så nu har jag efter mycket frustration lagt det på is och har svaren okrypterade, likt spelet jag hämtade inspiration ifrån.

Facebooks inloggningssystem är säkert och stabilt och det är väldigt skönt att man slipper ta hand om det själv. Men det innehåller också mycket overhead. För att kontrollera att en användare är inloggad används ett sessions-id som Facebook skickar med som parameter till applikationen. Jag har valt att göra min applikation som en IFRAME-app, vilket innebär att jag bara kan bädda in spelet i Facebooks ramverk utan att tänka på begränsningar i koden. I det alternativet kommer sessions-id som en parameter i själva iframen-adressen när fönstret öppnas. För att få med identifieraren varje gång måste jag när jag byter sida öppna hela Facebook-fönstret på nytt, vilket gör att applikationen känns ganska långsam. Alternativen är att få med sessionsvariablerna via cookies eller via en permanent nyckel. Men det verkar för komplicerat att göra när jag inte hittat några konkreta kodexempel för de lösningarna.


Ett problem jag brottades länge med var hur man använder vanliga Facebook-funktioner som inbjudningar, notifikationer och feed-postningar ifrån en IFRAME-applikation. Svaret var att man ansluter sin applikation till Facebook-connect, en funktion som också kan anropas från externa webbsidor (t.ex. gör Winlas.se det för att hämta sidans Feed till externa hemsidan). Connect består av JavaScript som anropar på något sätt till Facebooks servrar. Då det är ett ganska tungt skript saktar det ner min sida, som redan har mycket JavaScript i sig. Om quizen dröjer några sekunder med att starta beror det på att anropet till Facebook-Connect tar tid.

Att namne applikationen

Namnet till spelet kom till mig direkt. Jag hade pratat med min flickvän om hennes matematikläxa precis innan och mitt sätt att lösa matematiska problemen är att göra ekvationer av dem, sätta in X och Y som variabler för de obekanta. Det tänket hade jag när jag skulle bestämma namn åt min applikation. Grundidén på spelet är att man ska välja ut massa objekt ur en delmäng och att man har en viss tid på sig. Omskrivet till matematiskt språk blir det:


X = Objekt ur en delmängd

Y = Tidsgräns för quizen


Man ska skriva X objekt på Y minuter. Eller på engelska X in Y. Hopskrivet blir det XinY! Ett beskrivande, unikt namn på min applikation, som duger gott åt ett spel som hittills bara ses som ett testprojekt för att jag ska lära mig att programmera mot gränssnittet till Facebook.

24 september 2009

Två affärsresor på en vecka

Senaste veckan har jag varit ute och rest mer än någonsin tidigare. I torsdags var jag i Norrtälje för att visa kommunen vårt vikarieprogram. I tisdags var det Sandvikens tur. Äldre- och handikappomsorgen har redan programmet, nu fick de en repetition och en visning av nya funktioner samtidigt som Skolan fick se programmet för första gången.

Min roll i själva visningarna är ganska passiv. Min huvudsakliga uppgift på de här två uppdragen har varit att ta med hårdvara så att allt funkar, alltså min dator. Till Sandviken tog jag dessutom med två projektorer för att kunna visa programmet som det är tänkt att användas.

Både Norrtälje och Sandviken var positiva till det de såg. De förstår vilken förbättring programmet kan göra på deras verksamhet och Rainer som presenterar det är verkligen duktig eftersom han både använder programmet dagligen och tycker om det. Förra gången jag var i Sandviken skötte jag visningen, det blev helt okej ändå, men ändå inte samma grej. Applikationerna jag har gjort håller bra klass och jag presenterar funktionerna sakligt och relativt kunnigt så länge det rör sig om mina webbapplikationer. Det jag saknar är Rainers entusiasm, sociala kompetens förmåga att lägga ut texten när jag pratar och positiva inställning när jag är tveksam till något. Under visningen idag fungerade jag som en hjälpgumma som satte igång och kopplade i projektorerna och satt bredvid om han fastnade i det tekniska. Jag lärde också Rainer följande grundläggande dator-/internetkunskap:

· Vårt program fungerar inte så bra när två personer är inne i samma profil samtidigt. Den som sparar sist skriver över den första personens arbete.
· Lokala webbsidor fungerar inte om man har inställningen Arbeta nerkopplad aktiverad.
· I Firefox kan man förstora texten genom att trycka på Ctr+. Mycket användbart i en visningslokal när folk sitter långt borta.

Efter visningen i Sandviken passade jag på att gå lite i Sandvikens centrum. Jag har varit i staden två gånger förut. Alla gånger har dock varit på kvällstid,. Nu hade jag en timme över mellan lunch och tågets avgång. Jag spenderade tiden på ett mysigt litet antikvariat som hade begagnade böcker, tidningar, filmer och spel. Det hela slutade med att jag handlade för 900 spänn. Ägaren ville propsa på mig ett komplett vetenskapligt uppslagsverk också. Men jag tyckte det verkade lite väl jobbigt att släpa hela vägen hem. Jag bar också på en tung dator, en stor resväska med två projektorer och kassen med resten av det jag köpte på antikvariatet. Istället blev det några TV-serier, två filmer, 10 serietidningar för 10kr, två Tintinalbum m.m. För att Cailyn ska stå ut med att jag reser så mycket tänkte jag ge henne några av grejerna som presenter. Det är tradition att ge nära och kära presenter när man har varit ute och rest?

Ägaren till butiken var riktigt trevlig. Jag gillar begagnade grejer – då finns det ofta billiga kap man kan hitta ju. Hela affären var fylld med dem. Han frågade mig om jag letade efter något speciellt. Och fick gräva ganska djupt för att hitta mina specialönskemål med Tintin-album och spel till gamla Nintendo-konsoller. Tyvärr skulle han lägga ner affären vid nyår och mest koncentrera sig på marknader och hans hemsida. Det var då jag nämnde att jag är en webbdesigner. Det slutade med att han fick mitt kort med telefonnummer och epost. Jag hoppas att han ringer då det är ett jobb jag gärna tar! Affärens nuvarande hemsidan kan ses på http://www.gestrikeantikvariat.se/ Den går att förbättra. Men med hans ständigt föränderliga utbud är det omöjligt att katalogisera allt. Jag får tänka ut någon lösning. Hoppas han kontaktar mig, för det är precis ett sånt uppdrag jag letar efter! Jag har alltid gillat marknadsfolk som säljer begagnad media. Hälften av mina TV-spel är inköpta begagnade från Tradera eller Nordic Games. Det här kan bli ett lika roligt uppdrag som David Svensson, IFK Falköping och Mössebergsfestivalen.

De här två resorna har inneburit ovanligt mycket tågresande för min del.
Det känns lite segt att åka tåg och buss i 8-10 timmar för att göra en visning som tar 2 timmar. Men så länge jag har en dator med internetanslutning kan jag lätt underhålla mig i tio timmar. Facebook, spel, den här bloggen, live messenger, några filmer, webbprogrammering, etc kan döda massa tid. När jag är ensam hemma utan flickvän sitter jag ändå mest vid datorn och internet. På tåget går att göra precis samma saker jag gör hemma. Ett problem kan vara att batteriet tar slut. Tågkompaniet och Regina-tågen har strömuttag, men jag hittade inte det på Intercity. Men jag var förberedd med korsordstidning, böcker och tidningar.

06 juli 2009

Roligt mail

Som ni kanske vet är jag webbansvarig för Mössebergsfestivalen, en kristen (ekunemisk) musikfestival i Falköping. Festivalen fick tyvärr läggas ner i år pga att projektledaren gick bort i cancer. Han var min kontaktperson också vi skötte uppdateringarna av sidan via e-post. Festivalen återkommer dock 2010, under gemensamt ledarskap.

Jag är på inget sätt kristen, utan övertygad ateist. Därför är det lite roligt att läsa vilka åsikter vissa religiösa har i Falköping. Idag fick jag det här mailet i inkorgen.

Falköping  den   6/7 2009       11:32
Hej Tomas Henning!

Jag gillar inte
den senaste händelseutvecklingen i Festivalfrågan. Jag har accepterat
att det inte blir något i år. Men varför måste ni göra som
Nyhemsfolket och skrota tältet? Bara för att man lyckades med det i
Nyhem, med sin nya fina hall, behöver det inte betyda att det är lika
lyckat här. Och ert dummaste beslut av alla. Varför flytta festivalen
FRÅN Mösseberg? Då får ni byta namn också, kalla det
Falköpingsfestivalen istället. Och ännu dummare var beslutet att
flytta in i ODEN-hallen. Men hallå!!! Vet du vem Oden var??? Tydligen
inte. Han var en av de många avgudar vi svenskar hade under
vikingatiden, innan Olof Skötkonung kristnade landet. Gud kommer
definitivt inte att välsigna er festival i Odenhallen helt enkelt
därför att den bär ett avgudanamn. Gud acceperar INTE avgudanamn, Han
kompromissar ens inte om det, inte ens för att ni samlas i Guds namn
för att ge er bönesvar och välsignelse., så glöm det där med bönesvar
och välsignelse för det kommer ni ändå inte att få. utan detta blir
till 100 % i mänsklig kraft. Inte mer värt an vilket annat
föreningsliv som helst.
Tänk om annars så får jag tacka för de år som varit och framöver säga
nej tack till Mössebergsfestivalen i Odenhallen.
Nej, ert beslut om att flytta in i Odenhallen är lika stolligt som om
Förbundet Sverige-Israel hade flyttat in sina sommarkonferenser i
Ahmadinejahd-hallen (Iransk president, känd förintelseförnekare,
antisemit och Israelhatare, drömmer och fantiserar om nya
judeutrotningar) om det nu hade funnits nån sån hall.
Mitt förslag är istället att ni stannar kvar på Mösseberg och om ni
ABSOLUT TILL VARJE PRIS MÅSTE skrota tältet flyttar in i den byggnad
som finns och minskar Festivalen något, alltså banta kraftigt för att
passa in i kostymen. Visst, jag förstår att detta drar folk. Men ställ
då extrastolar utanför och montera upp nåt slags kombinerat regn/
solskydd. Så jag är djupt besviken på er hela gänget.

Hälsningar
*censur*, nybliven Falköpingsbo
Det roliga är att mailet är seriöst skrivet. Okej om man har de synpunkterna för 200 år sedan. Men att idag inte kunna vara i en arena bara för att namnet råkar vara en annan Gud. Har han andra namn på de svenska veckodagarna som är tagna efter asagudarna också? Ska han fördömma alla med namnen Tor, Freja, Saga, Siv och Brage? Kan han besöka Grekland som har så många spår och namnhyllningar till den grekiska mytologin?

Det är så löjligt så det är inte sant. Det går säkert att dra fler paralleller till gamla gudanamn då religionen brukar få stor inverkan i språket. Kristendomen råkar bara vara den största religionen för tillfället. En annan fråga är hur skulle han se det om han visste att en ateist sköter om hemsidan för Mössebergsfestivalen?

27 maj 2009

Nättrakasserier

Idag var jag på andra sidan en form av nättrakasserier. Webbsidan Bankvarmarna.se som jag är ansvarig för hade rena personangrepp om en spelare i motståndarlaget. Några i mitt lag kallade mannen idiot och sade att han inte hade alla hästar hemma. Jag var inte en av de som skrev elaka kommentarer.

En kvinna ringde upp mig och sa följande. "Det är okej att lägga upp en bild på honom. Och säga att han spelar buffligt och så. Men personangrepp som att kalla honom idiot är att gå över gränsen." Jag är smått konflikträdd så jag gick med på att ta bort kommentarerna direkt.

Anledningen till att jag låt dem stå kvar när de postade var helt enkelt för att de var roliga. Sen håller jag egentligen med. Han beter sig som en idiot när han puttar till Martin som bara screenar bort Surgubben när han är på väg in i vår målvakt. Det är när man har den attityden som man provocerar fram slagsmål som det vi såg från Toms vänner i Kinnarspcupen. Bara för att domaren inte blåser får man inte mucka gräl med spelaren som bara försöker försvara motståndarmålet.


En liknande sak hände förra veckan då jag retade upp våra motståndares målvakter som gjorde ett misstag. Jag visste att han skulle reta sig om han såg bilden, då det var hans misstag som orsakade att de förlorade matchen. Jag trodde han var medveten om det och mer skulle bli arg på sig själv än den som lägger upp bilder på incidenten. Det som provocerade honom lite extra var mitt ordval: "Bara för att förnedra målvakten lite extra lägger jag ut några extra bilder på målet." Han blev också sur på mig för att jag skrev att han tappar in bollen. En tolkningsfråga, kolla på filmen själva.

http://www.youtube.com/watch?v=CsLaOqG5zN0

Till målvaktens försvar ska sägas att han var felfri i resten av matchen, gjorde flera vassa räddningar och räddade kvar Stridstupparna i matchen - tills målet.


Skillnaden mellan incidenterna är enligt min syn att jag sakligt försöker redovisa min syn på vårat mål. Som jag såg det ett misstag av målvakten. Han svarade faktiskt på min bild på bilddagboken - då med ett personangrepp om mitt utseende. Det är inte acceptabelt, ändå är det jag som viker ner mig och postar en ursäkt och skriver snällare på min webbsida.

För övrigt ska tilläggas att min bror var bästa kompis med målvaktens storebror och han har varit hemma hos oss flera gånger. Tänk på det innan ni trakasserar folks utseende på nätet!

25 maj 2009

Visning i Lidingö

Idag åkte jag med jobbet till Lidingö för att visa vårt vikarieanskaffningsprogram. Alltså bar det av med en heldag i Stockholm där vi skulle visa WinLas Resurs för IT-folk, ansvariga på ekonomiavdelningen, rektorer, chefer för poolanställda och vikariesamordnare inom vården. Med mig hade jag chefen Bosse Johansson, som kunde boka om en planerad resa för att följa med till Lidingö, samt Rainer Calissendorf ifrån Sala, som höll i visningen. Dagen var indelad i två pass, en på förmiddagen då folk från skolan lyssnade på presentationen och ställde frågor. Och tre timmar på eftermiddagen, då det var vårdens tur.

Tre saker jag speciellt kommer ihåg ifrån dagen ifrån min synvinkel. Jag blir väldigt stolt över det arbete jag har gjort med företaget när vi har en så duktig säljare som Rainer som presenterar det. Mina webbmoduler är nu en mycket viktig del av systemet och den del som är mest användarvänlig, "flashig". Webbapplikationerna underlättar verkligen inmatning för och kommunikation emellan vikarier,arbetsplatser och kedjan däremellan. När jag ser det visas blir jag sugen på att utveckla nya delar. Kanske rentutav göra hela programmet webbaserat i framtiden?

En tant i den andra gruppen ställde flera gånger frågor direkt till mig, fast jag under det passet mest satt ganska tyst. Hon pekade ut mig som datorhacker och tyckte att jag verkade vara den man skulle fråga om man ville ha avancerade datalösningar. Nu kan Bosse programmet bättre än mig och speciellt integrationen mellan systemet och kommunernas lönesystem, som frågan hon ställde handlade om. Nu satt jag inte helt tyst på mötet utan som vanligt så pratar jag när jag har något att säga. När Rainer sitter med mina webbapplikationer och ska visa någon specialfunktion är det jag som har den kunskapen. Jag hjälpte till att sätta upp projektorer och har också hyfsad koll på själva programmet. Jag var något mer aktiv första passet pga trötthet. Vi åkte mot Stockholm redan 6:04 på morgonen. Jag somnade runt 2 på natten, vilket ändå är relativt tidigt med tanke på att jag inte somnat före kl 4 på flera veckor. Anledningen till det här är en hemlighet som jag tänkte avslöja inom några dagar :)

Den tredje saken som sticker ut lite idag är tågresan hem. Jag började att titta lite på film, men ganska snart ville chefen gå igenom programmet och några saker som kom upp under visningen idag. Bland annat att vikarier kan bekräfta Tjänstgöringsrapport på nätet och att gå över till en ny SMS-teknik som jag varit med och utformat. Nu är det så att chefen har en ganska sövande, långsam röst och jag hade som sagt sovit väldigt lite under natten. Så inte många minuter efter att han börjat prata med mig somnade jag ifrån. Jag kom på någon timme senare när jag vaknade att jag måste somnat när han pratade med mig. En aning oförskämt mot sin chef. Men jag somnade redan på arbetsintervjun till det här jobbet och fick det ju ändå.

11 maj 2009

Ny hemsida

Jag har skapat mig en ny hemsida. En hemsida där jag presenterar mig själv, vad jag erbjuder för tjänster och mina nuvarande projekt. Så surfa in på http://fredrik.bankvarmarna.se/ för att se vem webbutvecklaren Fredrik Olsson är.

Vad ni kanske inte visste var att jag söker nya projekt med att skapa någon slags community. Jag väntar bara på en bra idé, för tiden och kompetensen finns. Det närmsta en community jag skapat nu är mitt korplags hemsida www.bankvarmarna.se. Där jag hämtat mycket inspiration från sidor som Bilddagboken och Facebook.

Communitydelen på sidan kallar jag Fanclub där personer som stödjer vårat lag kan bli medlemmar och då får tillgång till funktioner som en egen profil och möjlighet att tippa matcherna i korpserien. Bli medlem här: http://www.bankvarmarna.se/index.php?page=fanclub/Fanclub.php