Lite nyheter

Idag har vi skrivit en enda kodrad, men vi har gjort en hel del andra nödvändiga saker. Vi har upprättat en ny sprintbacklogg och denna gång lagt upp det lite annorlunda mot förra gången. Vi hoppas att det nya sättet blir bättre. Johanna sitter i skrivandets stund och skriver våra backlogg-tasks på post-it lappar. Ska förhoppningsvis ge oss lite bättre överblick på saker och ting.

En glad nyhet är att Johanna fått sin nya dator och håller för fullt på att installera allt som behövs på den.

Tråkig nyhet är att jag (Andreas) var hos sjukgymnast idag och fick reda på att mina ryggmuskler inte mår sådär jättebra. Vet inte för tillfället hur mycket det kommer påverka projektet på lång sikt, men för tillfället så påverkar min rygg projektet negativt eftersom det gör ont och jag känner mig obekväm. Som det verkar på sjukgymnasten så kommer jag få gå dit lite regelbundet på undersökning och uppföljning. Det som är bra i det hela är att jag förhoppningsvis kommer ha en mycket bra ryggmuskulatur efter att rehabiliteringen är över. Har fått instruktioner om att jag inte ska sitta still vid datorn hela tiden, måste upp och röra på mig samt göra övningar för ryggen en gång i timmen när jag sitter i statiska ställningar.

Projektmässigt har vi bestämt vad som ska göras innan delinlämning (eller i alla fall vad vi siktar på att hinna med). Vi har bestämt oss för att ta en titt på KSoap2. Om vi förstått KSoap2 rätt så ska vi kunna skicka rena klassobjekt vilket rent praktiskt betyder att vi inte behöver krångla med att omvandla XML till objekt som vi kan använda oss av. Att slippa XML-omvandlingen besparar oss säkert minst 1 vecka i utvecklingstid. Dessutom blir koden enklare och arkitekturen mer överskådlig. Detta är dock under förutsättning att det finns någon form av listobjekt som både PHP-delen och Java-delen förstår.

Efter att ha undersökt hur första sprinten gick så kan vi konstatera att vi var halvt ute och cyklade. Häften av det som stod i loggen är gjort men vi har samtidigt lagt mängder med tid på helt andra saker än vad som stod. Så rent tidsmässigt stämde ingenting, dessutom var våra tidsuppskattningar helt felaktiga. Nästan allt tog längre tid än beräknat. Vi har tagit till oss detta och kommer i fortsättningen dels lägga till nya tasks i backloggen när de uppkommer samt att beräkna för att en uppgift tar lite längre tid än vad vi trodde innan. Idealiskt så vill man att backloggen ska stämma när man gör det, men eftersom vi faktiskt inte vet exakt vad som kommer att behöva göras för att X ska fungera så får vi lägga till uppgifter i efterhand. Vi ser dessutom projektet annorlunda nu och räknar med det som behöver göras för utbildningen i projektberäkningen.

Orus IT

Så är jag äntligen färdig med någon som jag inte förväntade att jag skulle spendera många timmar med. Insåg idag att det var dags att emigrera från min gamla mail på ORU till den nya Gmailen. Detta visste jag att jag skulle vara tvungen att göra. Vad jag inte visste var att det inte skulle finnas någon form av verktyg för att flytta mina mail från min gamla inkorg till min nya. Eller för att citera IT-avdelning:

"Det finns flera olika verktyg och metoder för migrering av e-post som fungerar mer eller mindre bra ute på nätet. Vi ger inga rekommendationer kring detta..."

Tack så mycket för det!!

Fanatiskt med människor som mer eller mindre säger... "Du, det finns sätt att göra detta enkelt på, men vi tänker inte berätta varken hur eller vad mjukvarorna heter som kan användas. Mwuhahahahahahhaah"

Så vad gör man då? Jo, man spenderar flera timmar med att vidarebefordra mail från ett konto till ett annat. För en student som läst säg 1-2 år så tar inte detta speciellt lång tid eftersom blackboard används primärt numera. Men för någon som läst ett par år innan blackboard började används regelbundet (på de kurser vi läst) så har man en jobbigt stor hög med information i sin mail.

Hoppas verkligen att det inte kommer vara några problem att skicka vidare informationen från Gmail till någon annat konto den dag jag inte läser vid Universitet längre.

Nu är det gjort i alla fall, men på bekostnad av projekttid. Får dock erkänna att jag känner mig mindre stressad nu. Speciellt med tanke på att alla de dagar jag lagt på vissa svårare saker som faktiskt har löst sig för tillfället.

Johanna har suttit med samma sak som jag idag... fixat med mail. Men lite progress har även skett på projektet. Vi har skapat ett skelett för hur vi vill att XML-formatet som ska användas via vår blivande web service ska se ut. Vi har även tänkt ha några flytande attribut (som inte kommer användas i Android, kommer bara skickas med så att web servicen ger specialbehandling till viss information) som ska kunna användas vi senare tillfälle utifall det kommer ske förändringar. Med den typen av flytande attribut så är förhoppningen att koden inte ska behöva skrivas om för android vid vissa typer av uppdateringar i STEP. Vet inte om det framgår hur det ska kunna användas utan att rita lite diagram. Men tanken är i alla fall att det ska vara bra vid eventuella förändringar i huvudsystemet. Problemet som Microdata sitter med är att de inte har någon kompetens inom Android. Så när vi lämnar dom så har de ingen som kan förvalta det vi byggt. Så det underlättar för dom om vi lägger till denna typen av garderingar så att Klientuppdateringar inte ska behöva ske lika ofta.
Samtidigt kanske denna typ av strategi är dålig från vår sida. Det är på sätt och vis bättre om de är beroende av oss så att vi kan ta ut vansinniga pengar på att uppdatera vår kod [galet skratt]. Fast detta går emot våra principer. Ska man göra något ska det göras ordentligt och fungerande för kunden (kunden i detta fall borde vara Microdata). Vi får väll se om denna princip är något man kommer hålla fast vid i sin yrkeskarriär. Men att tänka åt andra hållet skapar stora problem för både användare och företag. Det finns gott om företag som försöker nagla fast sina kunder till företagets produkter. Helt förståelig strategi eftersom poängen med företag för det mesta är att tjäna pengar. Detta beteende är dock stagnerande och kan på lång sikt sammanfattas med följande vält valt ord:

dåligt

Vilket fall som helst så är jag för tillfället väldigt nyfiken på hur navigeringen vi skrivit fungerar i praktiken. Innan vi kan testa detta så måste vi skriva klasser som kan ta emot informationen som vi skickar in från XML. Detta betyder att vi med andra ord börjar tidigare än väntat med den delen. Vi ska egentligen inte göra det förrän om ett par veckor. Men som ovan utvecklare är man dum och undermåligt när det gäller att se helheten och kunna tidsplanera efter det. Johanna kommer dock fortsätta skriva på gränssnittet. Finna massor med småsaker som måste skrivas in för att helheten ska fungera.

En mycket trevlig upptäckt är att, vad man än gör när det gäller det visuella i android, så ser det man gjort ut ungefär 3 gånger bättre när det väl hamnar i en telefon. Vet inte varför, men trevligt är det.

Det som är skönt är att arbetsron där vi sitter för tillfället är fantastisk. Min granne har nämligen fått för sig att alla tycker om Rihanna och liknande. Samme person har dessutom fått för sig att öron tål hur högt ljudtryck som helst och att det är bra att ha jättehög volym på sin stereo och dessutom öppna fönstret. Det tycker jag också...

En anna sak vi spenderat endel tid med idag är att hitta en ny vettig dator till Johanna och har hittan, vad vi tror, är en riktigt bra dator till ett vettigt pris. Om allt går som det ska så kommer den dyka upp senast måndag (kanske tillochmed i morgon fredag, enligt orderstatus så har de redan skickat den). Sen blir utvecklingen betydligt trevligaren för Johannas del. Den nya datorn kommer ha liknande prestanda som min stationära eller kanske till och med bättre när det gäller androidutveckling.

Dagens uppdatering

Hej hopp och lycka. Nu är endel av problemen av stor irriterande grad lösta. Sitter för tillfället och ska sammanfläta två olika testprojekt. Det är inte helt oproblematiskt. Måste få SVN att funka för detta är varken produktivt eller tidseffektivt att sprida ut koden på flera olika håll. Vi får helt enkelt ta oss tid för att undersöka hur SVN kan användas tillsammans med Eclipse. För det måste gå, annars hade det inte varit speciellt många som använder Eclipse.

Som läget ser ut nu så har vi som tidigare nämnt fungerande pricknavigering (inte rent tekniskt, men visuellt) och vi har löst en underlig bugg som har med vyflyttning att göra. För Johanna går det också framåt, för varje gång jag tittar på hennes skärm så har det ploppat upp nya saker och funktioner i gränssnittet. Tror hon sitter med skrivning av inställningar till internt lagringsutrymme. Vi har inte riktigt bestämt hur dessa filer ska sparas. Vi vet inte vad det finns för typ av parsninsverktyg för tillfället. Faktum är att en ini-fil nog vore det bästa i detta läget... så länge vi hittar någon vettig ini-parsningverktyg. I annat fall blir det nog XML.

Nu tillbaka till sammansättning av två olika projekt.

Liten uppdatering

Vi har inte hunnit att göra det vi tänkt att göra föregående vecka. Vi har haft förvånande stora problem med till synes enkla saker. De till synes enkla sakerna har dock visat sig vara värre att hantera än vad vi väntat oss. Efter många timmars läsande på internet så kan vi konstatera att vi inte är de enda som har problem med att skapa dynamiska gränssnitt i android. Gränssnitt i android är bra frid och fröjd så länge man nöjer sig med förinställda "View" som helst statiskt deklareras i XML. Eftersom det inte på något sätt är en möjlighet för oss att skapa statiska gränssnitt så kommer vi tyvärr få utöka tiden för GUI-Design. Dock har vi kommit en bit på vägen och lärt oss mängder om vad som går och vad som inte går att göra (vilket är bra för fortsatt arbete). Som läget är nu så är åtminstone det som jag (Andreas) hållit på med för tillfället på lösningsvägen. Vad det handlar om är en prickbaserad navigering. Att få ut dessa prickar på en vettigt sätt har tagit cirka 4 gånger längre tid än väntat. Och det enda jag har för tillfället är enkelt fungerande sätt att pricknavigera. Har testat minst 5 olika tillvägagångssätt och hamnat i återvändsgränd efter återvändsgränd. Som läget ser ut nu så beräknas utseendet på pricknavigeringen utifrån körenhetens dpi. Själva prickarna är ett arv på klassen "FrameLayout" som har diverse metoder kopplade till sig. Dessa objekt som sedan kopplas till "onClickListners" som tar fram rätt vy. Vad som inte är gjort är skönhetsdetaljer så som padding och färger. Det kommer förmodligen behövas fylla på med fler metoder för att manipulera objekten på ett vettigt sätt, men det ska inte behöva vara speciellt krångligt att lägga till i efterhand (dock trode vi ju att detta som nyss är gjort inte skulle vara speciellt krångligt det heller...)

Det har gått framåt för Johanna, hon har skapat en klocka som INTE är tung för processorn och hon har funderat på eventuella problem som klockan kommer kunna skapa. Som läget ser ut just nu vet vi inte om de problem hon funderat på någonsin kommer att uppstå. Och om de uppstår så kommer det enbart hända under följande förutsättning:
1. Enheten har inte startats om på runt 48 dagar.
2. Man är inloggad.
3. Systemvariabeln som håller koll på hur länge telefonen varit igång når sitt slut och börjar om från början.

I detta fall kommer klockan räkna jättefel... tror vi. Vi har lite svårt för att testa detta praktiskt.

I det stora hela så ligger Johanna lite bättre till än mig, men är efter hon med.

Det stora problem som vi VET att vi har kvar är "Tabell navigation". Detta kan potentiellt skapa stor huvudvärk. Vi får se.

För övrigt så är det för tillfället en hel hög med mindre detaljer som måste implementeras för att få ett fungerande gränssnitt. Det som inte är gjort är att koppla samman det vi suttit och byggt för tillfället. Vi kan egentligen inte bygga ihop det hela förrän efter vi skrivit delar av vår web service. Det som är skönt är dock att vi inte ska behöva bekymra oss för förändringar i gränssnittet eftersom vi försökt skiva så stora delar som möjligt i XML. Det är bara att gå in i XML-filen och ändra det som behöver ändras. Den stora delen som är kvar gränssnittsmässigt är att rita ut de komponenter som vi kommer få från webservices. Men det är ett problem vi inte behöver bry oss om på några veckor.

Något vi borde ha gjort vid detta laget men inte gjort är att börja arbeta via SVN. Vi har installerat och kopplat in oss på SVN-servern. Vi har samtidigt upptäckt vissa problem som vi måste lösa. Eclipse öser ut mängder med metadata. Denna metadata vill vi inte behöva ta hänsyn till... och vi hoppas vi kan slippa det på något sätt. Vi har dock inte gjort det än eftersom vi prioriterat andra saker. Att lösa det problemet tar säker en dag. Eller så kanske vi har tur och någon vänlig själ som skrivit en tutorial när det gäller Eclipse och SVN.

Vi har upptäckt att tiden går ungefär 3 gånger snabbare när man sitter med detta projektet. Man hinner inte mer än att börja innan dagen är slut. Dåligt.

Det går frammåt, men väldigt långsamt

Detta blir mer och mer frustrerande, vi kommer frammåt och löser problem. Det tar bara mycket längre tid än beräknat. Vi har nu fått till en liknande funktionallitet som på Androids Homescreen. Problemet är bara att det hela beter sig apa. Hela vyn hoppar hejvillt till höger och vänster. Jag har mina misstankar vad som är problemet men jag vet inte hur det ska kunna lösas. Vi tänker inte lägga mer tid på den detaljen för sekunden utan fokuserar på andra problem för tillfället. För hoppningsvis så kommer vi har något större förståelse för vissa detaljer för att lättare kunna lösa detta problem senare. Nu fokuserar jag på att skapa en vyöverblick. Det går inte heller så smidigt som jag hoppats på. Satt hela dagen igår och testa olika möjligheter och har i alla fall kommit någonstans. Tyvärr så finns det inget inbyggt för att göra detta enkelt vilket gör att jag tänker skapa en egen widget som gör det som vi vill åstakomma. Det som känns riktigt  jobbigt i det hela är att vi måste ha något fungerande att visa upp dels för microdata, dels för delredovisningen. Det leder en således till att fundera över hur man ska prioritera sin tid. Ska vi prioritera att göra det vi gör snyggt (bra skriven kod, bra tekniska lösningar) och minimera risken för någon form av refactoring, eller ska vi skynda frammåt och se till att skapa funktionallitet i ett hemskt och oanvändbart gränssnitt (ur slutkundsperspektiv)? Det vi inte alls räknat med är att vi skulle få så stora problem med att göra gränssnittet användbart. Vi viste att det skulle behövas tid men vi märker redan nu att det näst intill tar för mycket tid. Vi är helt enkelt inte tillräckligt erfarna för att få det att flyta på.

Vilket fall som helt så är det viktigt att vi fokuserar på att lösa delproblemen. Blir för mycket att se helheten för tillfället. Idag ska jag lösa hur man skapar en prick som kan storleksförändras, färgförändras och som har en siffra i sig. Med andra ord samma sak som jag gjorde igår. Ska testa att skapa det hela i java, har lite mer kontroll över det hela där. Men första måste jag lösa hur jag kan lägga in en "android:shape" i en "imageview". Fick det inte att fungera igår... den vägrar synas. Min shape fungar dock bra som bakgrundsbild i valfri widget, men inte i en "imageview".

Johanna håller för tillfället på med vår skelettsktruktur för projeket som vi sedan ska arbeta utfrån via SVN. Sen ska hon fixa en räknare som visa hur lång tid det tar innan du loggas ut. Räknaren får inte dra en massa processorkraft för att den vill ritas ut gång på gång och vi kommer behöva använda den på många ställen. Det betyder att den förslagsvis blir en egen klass som bara behöver instansieras för att fungera. Det är bra att vi tänker på denna typen av detaljer för att inte behöva lägga ytterligare tid senare. Det är dock också en delaktig orsak till att det känns som vi rör oss så långsamt eftersom vi vill att det ska vara användbart från första början. Hur göra? Hur göra?

Märker tydligt att jag önskar att Informatik innehåller en kurs i mjukvaruarkitektur. RUP-kursen snubblade in på detta men inte speciellt mycket. Samtidigt vet jag inte riktigt vilken kurs man kan kasta ut eller förkorta för att få in något liknande. Vi har för tillfället ingen mall att gå på utan prövar oss mest fram, vilket tar tid och energi det med.

Tänk om

Det som är väldigt frustreande med att börja med ett nytt API (och språk för den delen) är att man ibland hamnar i återvändsgränder och får börja om från början. I förra inlägget så rörde sig saker åt både höger och vänster. Det gör de forfarande men inte riktigt med önskat beteende. Jag använde i det fallet en "ViewFlipper" och kontrollerade var fingret trycktes ned och sen släpptes upp för att beräkna fram åt vilket håll vyn skulle skrolla. Vi vill att gränssnittet ska röra sig efter fingret, liknande Androids desktop. Detta är tydligen svårare än väntat. Efter mycket sökande på google så är det hittils bästa tipset att rota igenom androids "workspace.java" som bygger upp just desktopen. Hittade den filen och den bestod av 1000 rader kod som jag inte alls känner för att avstätta en dag till att gå igenom. Så vad gör man? Jo, nu har jag börjat bygga denna del från scratch. Hitills har jag slängt ut ett antal "LinearLayout" som ligger på rad efter varandra. Deras bredd är lika bred som enehten de körs på. Det enda jag behöver göra nu är att flytta dem i relation med varandra och helt enkelt härma beteendet som androids desktop kör. Jag hoppas dock att jag inte får några problem med att lägga på vettiga animationer (som det ser ut nu får jag skapa dynamiska animationer som genereras beroende på situation). Ett annat problem som skulle kunna uppstå med den nuvarande modellen är att vertical-scrollning skulle kunna ställa till problem. Men vi får se. Det sista problemet är att vi rent teoretiskt ritar ut allt innehåll på skärmen, även fast det inte syns. Det skulle kunna skapa prestandaproblem, beroende på hur android hanterar för tillfället icke synliga komponenter.

Det känns lite sugit att behöva lägga så mycket tid på ett trivialt problem som sidoscroll, men utan väl fungerande användargränssnitt så kommer slutprodukten inte bli använd av slutkund och Microdata inte tjäna ett enda extra öre på denna app. Sammtidigt så tycker man att det borde finnas något lätt och smidigt sätt att göra just det jag är ute efter. Om någon som läser detta råkar känna till ett enkelt sätt att göra detta på får ni gärna lämna en kommentar.

Det rör sig, både åt vänster och höger!

Vi har idag fixat endel med papperarbete. Det finns nu en första product backlogg. Som det ser ut just nu så går vi en liten egen väg med det hela. Vi kör relativt korta sprintar och sätter upp en backlogg för varje kortare sprint. Längden på sprinterna kommer nog variera. Vi har uppdaterat det övergripande schemat och skrivit om den del detaljer i projektplaneringen. Rent projektmässigt har det hänt lite saker också.
Vi kan nu animera övergången mellan olika vyer, vilket är kritiskt ur användarsynpunkt. Det är dock forfarande endel ganska stora problem med tekniken i navigeringen som måste lösas. Vi har diskuterat dessa problem och hittat en teoretiskt lösning... vi får se hur omständiga dessa lösningar dock blir att implementera.

Nu tar vi dock helg och äter glass och kakor istället. Jag gillar dock inte kakor och har ingen glass, så jag får väl helt enkelt bara ta helg.

P.S. Johanna gillar kakor... D.S.

P.P.S. Om du vill ge kakor till Johanna så lämna namn och telefonnummer som kommentar nedan, så kanske du blir kontaktad och dina kakor uppätna D.D.S.

Lite nyheter här kanske vore på sin plats

Vi har varit lite dåliga på att uppdatera här eftersom vi inte gjort så mycket annat än att läsa de senaste veckrona. Nu blir det dock ändring på det eftersom vi har en massa saker att både göra och utveckla.

Igår hade vi ett möte med Christian på Microdata och de funderingar vi haft i utvecklingsteamet gick igenom. Istället för att bygga upp delar av funktionaliteten i html via php så bygger vi istället en web service med ett ramverk som skickar instruktioner till android. Dessa instruktioner kommer applikationen använda sig av för att bygga upp gränssnittet i enheten. Vår förhoppning är att det sedan i efterhand ska gå att uppdatera STEP utan att behöva uppdatera mjukvaran på androidsidan. Där uppdateringar ska ske är på den web service vi bygger. Detta underlättat framtida underhåll, speciellt med tanke på att det inte är helt omöjligt att det kommer byggas en Iphone app till STEP så småningom. Den appen ska givetvis också arbeta genom webservicen.

Vi visade enklare skisser för christian igår som enkelt förklarade hur vi tänkt oss gränssnittet. Han respons är dock, gör som ni tycker blir bra, ni är mer insatta än mig. Så jag tror vi får komma in från en annan vinkel och helt enkelt bygga (enligt planerna) en gui prototyp i android som är navigerbar för att kunna illustrera hur vi tänker. Efter det så får helt enkelt göra användartester för och se vad som behöver ändras. Jag ställer mig samtidigt tveksam till pappersprototyper. De lämnar VÄLDIGT mycket till testpersonens fantasi. Speciellt när det gäller smartphones eftersom de ofta har animeringar inbyggda i gränssnittet.

Vi lyckades dessutom utröna hur man skapar och använder sig av xmlbaserade animationer igår. Det kommer vi ha nytta av för att tyderligare göra navigeringen i appen.

Idag kommer vi dock inte har vidare mycket tid till något alls eftersom vi ska till universitet om cirka 1 minut. Efter den träffen är vi fast där till det är en föreläsning senare på eftermiddagen. Problemet är att Johannas dator havererat, så när vi är på resande fot har vi för tillfället bara till gång till en dator. Detta problem är omhändertaget och det kommer vara en ny laptop på plats inom förhoppningsvis en vecka.

Om det nu är så att någon verkligen läser detta så kommer vi vara lite mer flitiga med att uppdatera här. Och för att kontrollera detta så ställer jag en väldigt enkel gåta. (hoppas denna blogg tollererar att man komenterar inlägg, det har jag inte kollat. Om det inte gör det så får ni väll svara för er själva).

Två fädrar och två söner gick in i en djur affär för att köpa hundar. I affären hade de bara tre hundar, men alla gick ändå därifrån med en varsin hund. Varfördå?

RSS 2.0