wk voetbalpool webapp: dag 6

 
09 april 2010

Vandaag beseft ik me pas dat de Echte ‘proof of the pudding’ van mijn HelloWorld++ erin lag dat updates vanuit de ene browser ook zichtbaar moesten zijn vanuit de andere. Dus snel twee browsers naast elkaar opgestart, iets in de ene ingevuld, en jawel! het verscheen ook in de andere browser. Mijn dag kan nu al niet meer stuk!

Bij de daily meeting van vandaag is het ineens gezellige drukte: iedereen is aanwezig, Christa is weer beter, Rick is weer ‘on-farm’ (of ‘in da house’) en doet weer mee (sorry Rick!), dus we zijn met zijn 7en. Jan-Willem vertelt dat hij en Anatoly gisteren de rest van de dag bezig zijn geweest met het in elkaar schuiven van de GWT-frontend en de Scala-backend. Helaas bleek dat nog niet veel relevants op te leveren. Er komt wel een .war uit die je kan deployen, en de resulterende pagina wordt ook wel gestyled, maar de gewenste tabellen en panelen komen niet op het scherm.

Ralf denkt dat het eraan kan liggen doordat er onderwater afhankelijkheden van de Google App Engine in GWT worden meegenomen, terwijl die waarschijnlijk niet nodig zijn. Hij heeft gisteren een poging gedaan een webpagina op te tuigen met GWT+Scala+Lift, maar het blijkt dat GWT maar een rudimentaire netbeans-plugin heeft, terwijl voor eclipse de scala-plugin niet je van het is – dus je bent hoe dan ook genaaid de dupe. Ze gaan vandaag verder om dit uit te zoeken.

Rikkert en Christa gaan verder met zich inlezen in GWT, Scala en Lift. Christa gaat vervolgens helpen met Anatoly’s componentjes te stylen. Het plan is om de verdere ontwikkeling van de componenten te verdelen tussen Christa en Anatoly. Anatoly gaat vandaag proberen om ook wat JSON te verturen, en aan het eind van de dag meldt hij ook dat dat ‘onder bepaalde omstandigheden’ inderdaad lukt. In de praktijk komt dat erop neer dat het wel altijd lukt, maar dat Lift de manier waarop GWT het verstuurt nog niet altijd goed begrijpt. Pas sinds de Lift-versie van gisteren (2.0 milestone 4) blijkt hier ondersteuning voor te zijn, maar met enig zoeken is er wel een workaround te vinden.

Ik heb inmiddels Rick bijgepraat over de stand van zaken binnen het project (voor zover hij dat nog niet uit deze blog wist), en met hem de code doorgelopen. Hij stelt voor om zich te gaan richten op een aantal Unit Tests te gaan schrijven. Dat zal ook nog een aardig probleempje worden, omdat communicatie met de actoren asynchroon gebeurt, en je dus niet zomaar een methode kunt aanroepen en kijken of de return-waarde hetgeen is wat je verwacht. Ook het onderwerp authenticatie komt aan de orde, maar we besluiten dat dat voorlopig een ‘nice to have’ is. We gaan ervan uit dat niemand ons een schadeclaim aan de broek doet als iemand de voorspellingen van een ander vernaggelt. Ikzelf zal vandaag eens gaan nadenken over welke actoren er in het domein moeten komen, en welke berichten er heen en weer gestuurd moeten gaan worden.

Maar meteen na de meeting gaan we aan de slag met Ralf’s voorstel voor de Event-datastructuur. Het blijkt dat Jan-Willem, Rick en ik alledrie een andere visie hebben op Ralf’s bedoeling. Er ontstaat een levendige discussie van een uur waarin Jan-Willem ons probeert uit te leggen wat hij denkt dat de bedoeling was, ik er ondertussen weinig van begrijp, en Rick hevig zijn best doet om ertegenin te gaan. We besluiten Ralf zelf nog eens erbij te roepen, waarna de discussie nog een uur doorgaat. Uiteindelijk bereiken we toch wel de conclusie dat het ActorIdentification-argument toch wel erg vaag was, in verschillende contexten en voor verschillende event-typen verschillende betekenis had, en sowieso eigenlijk wel in het EventArgs-argument in te bouwen is.

De rest van de dag spenderen we aan het aanpassen van de bestaande code aan de zojuist afgesproken API, splits ik een UserFactory af zodat nieuwe User-actoren niet in de EventBus (voorheen ‘MessageBus’ – het is inmiddels duidelijk dat ‘Message’ niet helemaal een handige term is) zelf hoeven te worden aangemaakt, en definieren we nog een aantal events en eventargs voor later gebruik.

En daarmee wordt het half zes (zodadelijk althans, we zijn vroeg begonnen vandaag) en alles is wel.


Werken met ?
Kijk dan bij onze mogelijkheden voor starters en/of ervaren IT'ers.


Categorieën: Development