Research and Development 1/^Archief/2009-2010/05/Logboek

Uit Werkplaats
Ga naar: navigatie, zoeken
Bagjoke.jpg

Research and Development 1

Patrick van Bommel
Sjaak Smetsers


 © comments




Donderdag 4 februari 2010

Hans Harmannij, Rob ten Berge, Sjors Gielen, Koray Yanik, Cathalijne van Wettum en Tom de Ruijter in de Noordkantine, Radboud-universiteit - We gaan individueel de documentatie doorkijken en een presentatie voorbereiden. - Uiteindelijk zorgen we ervoor dat de presentaties elkaar een beetje matchen.

Resultaten

We hebben besloten samen te werken met een andere projectgroep. Wij maken een RUWave-client, zij maken de server.


Donderdag 4 februari 2010

Sjors Gielen en Koray Yanik, bij Koray thuis. - We wilden graag samen meer uitzoeken over het protocol, en zijn daarom samen gaan lezen. We hebben een presentatie gemaakt over onze bevindingen en over hoe Google Wave intern werkt, om aan de rest te laten zien.

Resultaten

Een kleine presentatie 'Google wave in vogelvlucht' en wat meer inzicht in Google wave.

Dinsdag 9 februari 2010

Sjors Gielen, Koray Yanik, Hans Harmannij, Cathalijne van Wettum, Tom de Ruijter, in de Library of Science. - We zijn samengekomen om de presentatie van Koray en Sjors te laten zien aan de rest van de twee groepjes. Iedereen (behalve Rob, die was er niet) weet nu ongeveer hoe Google Wave werkt. We hebben ook afgesproken morgen nog een keer af te spreken om de presentaties voor te bereiden.

Resultaten

Meer inzicht in Google wave voor (bijna) alle leden van de twee groepjes.

Woensdag 10 februari 2010

Sjors Gielen, Koray Yanik, Hans Harmannij, Cathalijne van Wettum, Tom de Ruijter, Rob ten Berge, in de Noordkantine. - Afspraken gemaakt over de presentatie die we over twee uur hebben, en de presentaties in elkaar gezet.

Dinsdag 23 februari 2010

Cathalijne van Wettum, Koray Yanik, Tom de Ruijter

  • Afspraken maken over de pilot. Zie citaat.

Citaat van Sjaak: "Om de pilot succesvol te laten verlopen is het zaak om, voor zover dit nog niet gebeurd is, zo snel mogelijk echt aan de slag te gaan. Volg hierbij de volgende instructies op:

  • Formulier een aantal concrete vragen die je gedurende de pilot wil beantwoorden;
  • Stel aan de hand van deze vragen een experiment of onderzoek samen en voer dit uit;
  • Leg de voortgang vast in het logboek.

Mocht je met ons willen overleggen dan kun je hiervoor gebruik maken van de groepsgewijze besprekingen op de dinsdagochtend. Schrijf je hiervoor tijdig in (uiterlijk 17:00 uur ’s maandags). Daarnaast willen we de woensdagmiddagbijeenkomsten gebruiken voor (verplichte) plenaire werkbesprekingen. Zoals aangekondigd, hebben we voor deze werkbesprekingen de groep in tweeën gesplitst, waarvan we de ene helft van 15:45-16:30 uur en de andere van 16:45-17:30 uur verwachten. De opdeling staat op de pagina 'Planning' in de werkplaats."

Het is dus zaak dat we de bovenstaande geelgedrukte punten morgen bespreken en direct een duidelijk plan van zaken opstellen. Het is ook verstandig om ons eindresultaat aan het groepje van RUWave Server te laten zien. De geelgedrukte tijd is de tijd waarin ons groepje is ingedeelt. RUWC zit helaas in het tweede uur. Misschien valt daar nog wat in te ruilen.

Ik vind het zelf vrij lastig waar te beginnen. Ik wil, zoals al gezegd, geen tweede keer het wiel uitvinden. Ik wil ook graag aan de rand van de ontwikkelingen staan, wat inhoudt: weten wat al bekend is over wat ons nog te doen staat.

Woensdag 24 februari 2010

Tom

Vrijdag 26 februari 2010

Tom

  • Verder gewerkt aan developersdocumenten samenstellen.

Zaterdag 27 februari 2010

Tom

  • Verder gewerkt aan developersdocumenten samenstellen.

Dinsdag 2 maart 2010 : 8.45 - 9.30

Koray, Cathalijne, Tom

  • Bespreking R&D1 met docenten.
  • Mailtje gestuurd naar Frits Vaandrager

Dinsdag 9 maart 2010 : 11.45 - 12.30

Tom, Cathalijne, Koray

  • Bespreking met Frits Vaandrager.
    • Hieruit volgt dat we het wave protocol formeel moeten opschrijven met behulp van predikaat-logica.

Resultaten

  • als protocoltaal gaan we predicatenlogica gebruiken
  • Skype gesprek gehad met ander groepje over de stand van zaken. Onderlinge problemen opgelost.
  • begin Datamodel GW in predicaatlogica omgezet.
  • Wiki (logboek/planning) opgemaakt, Pilot pagina aangemaakt met wat voorbeelden en uitleg voor formeel taalgebruik in de wiki. (Koray)

Woensdag 17 maart 2010 : 16.30 - 16.45

Tom, Koray en Cathalijne

  • Na de werkbespreking nog een tijdje blijven zitten om een planning op te maken voor de rest van de pilot fase en de werkdoelen besproken.

Resultaten

In de pilot wilden we graag een formeel protocol van het 'Google-Wave-server-client' protocol. Zo ver zijn we nog niet, dit moet nog gebeuren:

  • We waren bezig met het omzetten van de informatie die we hadden gevonden naar wat specifiekere natuurlijke taal, omdat de gevonden protocolbeschrijving te vaag was.
  • Die beschrijving in natuurlijke taal willen we zo goed mogelijk omzetten naar predicatenlogica.
  • De gevonden gaten willen we opvullen door zelf oplossingen te bedenken.

Vrijdag 19 Maart 2010 : 10.30 - 15.15

Tom, Koray en Cathalijne

  • We hakken een aantal knopen door, en testen wat van de problemen die we hebben gevonden in de documentatie. Ook wordt het logboek bijgewerkt.

Resultaten

Probleem: Wat als je in een groep zit, en daarnaast toegevoegd bent als gewone gebruiker?

Denk dat we dit in de implementatie specifiek moeten voorkomen, door bijvoorbeeld een controle uit te voeren bij het toevoegen van een gebruiker. Voornamelijk een server side issue

Wat als je een losse participant hebt, die daarna nog eens wordt toegevoegd als deelparticipant van een groep?

  • Antwoord: Groups en participants zijn beide unieke participants (uit definitie) dus zal het geen probleem zijn als een toegevoegde losse participant tevens in een toegevoegde groep voorkomt.

Wat is een participantlist? Is het een document?

  • We hebben besloten dat een participantlist is een array van strings(id's) is.

Wat is de relatie tussen wavelets en documenten? Kan het zo zijn dat een wavelet in een wavelet zit?

  • Wavelets kunnen inderdaad in Wavelets zitten. Wavelets bevatten documenten en een participantlist. Wavelets zijn geen participantlist, dus moet een Wavelet ook een document zijn.

Wave view is de verzameling van wavelets in 1 wave waartoe 1 bepaalde gebruiker toegang tot heeft. (Wave view wordt verder niet meer genoemd, waar is deze goed voor? "For the purposes of communication" ??) Ik denk dat ze het volgende onderscheid bedoelen:

  • De server heeft de complete "wave"
  • Elke gebruiker krijgt slechts alleen gegevens die relevant voor zichzelf zijn, vanuit privacy oogpunt. Dit wordt zijn "beeld" van de wave, de rest krijgt hij niet en is niet relevant voor hem. Dit is zijn "Wave view". Dit is tijd-formaat efficiënt en dus ook goed voor communicatiedoeleinden. Dit is tijd-formaat efficiënt en dus ook goed voor communicatiedoeleinden.

Iedere participant krijgt een eigen wavelet per Wave, met zichzelf als enige participant, waarin participant-gerelateerde informatie bijgehouden wordt. (Clientside of serverside of beide?)

  • Dit lijkt mij serverside. De client is nooit te vertrouwen, dit lokaal bijhouden is te makkelijk exploitbaar. HAX
  • Het is wel handig om een lokale versie bij te houden zodat de client ook al kan waarschuwen en incorrecte bewerkingen kan tegenhouden, maar dit moet zeker niet de "last line of defence" zijn.

We beslissen dan dat het serverside moet zijn, uit veiligheidsoverwegingen. Multi-clienten is ook in het voordeel hiermee. Deze wavelet is een datawavelet die "user-data" wavelet heet.

Private reply is 1 wavelet waarvan de participantlist een subset is van de participantlist van de vaderwavelet (In de huidige Google Wave implementatie, kun je ook mensen buiten de participantlist van de vaderwavelet gebruiken) Als ik de specificaties goed heb begrepen is dit ook de bedoeling. It's a feature! Not a bug.

  • We beslissen hierbij dat in een private reply alleen participants uit de participantlist van de vaderwave toegevoegd mogen worden.

Zaterdag 20 maart 2010 : 13.15 - 14.00

Tom, Koray

Verdere onduidelijkheden opgelost namelijk:

  1. Wat is history hash? Resultaat staat in document.
  2. Wat is opening a wavelet?
  3. Wat is recovery?

Zaterdag 20 maart 2010 : 15.15 - 17.15

Tom, Koray

  1. Definitie van een history hash uitgewerkt.
  2. De precieze definitie van het openen van een wave, de bijbehorende eisen en de effecten opgesteld.
  3. De precieze definitie van een wijziging van de server EN van de client geformuleerd en de effecten opgeschreven.

Maandag 22 maart 2010 : 18.00 - 22.30

Tom

  1. Uitgebreid geprek met Sjors gehad, over wat nu precies een protocol is.
  2. Techno-drama
  3. Demo SMTP protocol

Resultaten zullen blijken, morgen uit de werkbespreking van ons groepje.

Dinsdag 23 maart 2010 : 10.30 - 12.30

Bespreking over wat nog gedaan moet worden en taakverdeling. (Tom, Koray)

Resultaten:

  • Specificering van inloggen (Cathalijne)
  • Specificering van verkrijgen van Wave - Snapshots (Koray)
  • Wave - delta's verkrijgen (pop) (Tom)
  • Wave veranderingsnotificaties (push) (Tom)
  • Informatie over Wave - State opvragen.

Dit alles met betrekking tot XMPP protocol, aangezien protocol daarop gebasseerd is. Leesmij! http://tools.ietf.org/html/rfc3920

Dinsdag 23 maart 2010

  • Zaken voor in het verslag opgesomd, zie de verslagpagina.

Dinsdag en woensdag 30 / 31 maart 2010

  • Presentatie gemaakt.
  • Outline verslag opgesteld.

Donderdag 1 april 2010

  • Gewerkt aan het theoretische deel van het verslag (Tom)
  • Omgezet theoretische verslag van pdf naar wiki opmaak (Koray)

Woensdag 12 mei 2010

  • Bespreking met Sjaak en Erik gehad over de Pilotfase, ons toentijdige verslag en onze huidige planning.

Resultaten

Onze pilotfase is ruimvoldoende beoordeeld, met een 7. Ons verslag had een betere opbouw kunnen hebben; de volgorde van bepaalde kopjes en uitwijdingen maakt het lezen lastig.

Onze huidige planning is onvoldoende. Voor aanstaande week, is het nodig een gedetailleerde planning van fase 1 te hebben, en een minder gedetailleerde planning van fase 2.

We zitten nog op het goede pad, maar het is voor ons een schop onder de kont geweest om hard aan het werk te gaan om het gewenste eindresultaat te behalen.

Donderdag 13 mei 2010

  • Koray en Tom hebben een voorlopige gedetailleerde planning gemaakt van de tijd die we nog hebben, zoals gevraagd door Sjaak en Erik. Het is ons nu duidelijk dat we hard aan de slag moeten, willen nog het juiste eindresultaat behalen.

Maandag 17 mei 2010

  • Cathalijne heeft de xmpp opgezocht over het opvragen van gegevens aan de server. Dit scheen een hele bom informatie te zijn die we wellicht niet allemaal nodig hebben. Op een ander moment zal ze er verder naar kijken. Voor de informatie : Bestand:Opvragen.doc

Woensdag 19 mei 2010

  • Met beide groepjes overlegd over de laatste loodjes. We hebben de server groep een exacte specificatie aangeleverd voor wat we van hen verwachten voor het einde van fase 1. Deze is te vinden op de fase-1 pagina.

Donderdag 20 mei 2010

  • Koray heeft de eerste code geklopt. Deze is gecommit naar onze svn-server, waar we gedetailleerde logboeken en commentaar van bijhouden bij iedere commit. Verdere commits zijn dan ook te vinden in het svn log.

Woensdag 26 mei 2010

  • Presentatiedoel opgesteld: houdt de mensen wakker. We zijn als laatste, dus moeten we het luchtig houden. Onze exacte doelstellingen voor de presentatie zijn vanaf binnenkort te vinden op de fase 1 pagina.

Zondag 30 mei 2010

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Eerste clientontwerp ontwikkeld (Koray)
  • MainWindow ontwikkeld (Koray)
  • LoginDialog ontwikkeld (Koray)

Maandag 31 mei 2010

  • Tom heeft beginselen van de presentatie gemaakt. Deze is hier te vinden.

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Client kan inloggen op server (Koray)
  • Logger gekoppeld aan client (Koray)
  • Verbeteringen aan code (Koray)

Woensdag 2 mei 2010

Het grote presentatiemoment!

Dinsdag 1 juni 2010

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Logger aan interface gekoppeld (Koray)
  • Verbeteringen aan code (crashes boe!) (Koray)

Woensdag 9 juni 2010

Tom, Sjors, Rob:

Eerste werkbespreking fase 2.

We hebben gesproken over de nodige Publish Subscribe Library die beide partijen nodig hebben.

De Server groep gaat de implementatie hiervan verzorgen. Zij hebben een initieel design gemaakt.

Deze library waarborgt als het ware een observer subscriber structuur voor alle documenten, waarmee Wave mogelijk gemaakt kan worden.

Onze clientgroep moet nu de [XMPP PubSub RFC] lezen en begrijpen, zodat we over een datastructuur kunnen praten die we in onze client kunnen gebruiken.

Morgen volgt de volgende werkbespreking waar de volgende zaken aan bod komen:

  • Het beoogde eindresultaat aan het einde van fase 2
  • We overhandigen de servergroep:
    • Datastructuur voor Wave
    • Specificatie van bewerken Waves
    • Specificatie van aanmaken/bewerken Waves
  • Overleggen over ons huidig clientplan

Donderdag 10 juni

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Client herschreven om de boel wat efficienter te maken (Koray)

Dinsdag 15 juni

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Dummy Wavelet class toegevoegd (Koray)
  • Client maakt gebruik van wavelet (Koray)
  • WaveView toegevoegd, welk een wavelet rendert (Koray)

Donderdag 17 juni

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • WaveView herschreven (Koray)
  • Wavelet herschreven (Koray)

Zondag 20 juni

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Hoop code herschreven, vooral de scheiding van taken veranderd (Koray)
  • Dummy Wave class toegevoegd (Koray)
  • Client maakt gebruik van wave (Koray)

Donderdag 24 Juni

Bespreking Sjors, Cathalijne en Koray over hoe het nu verder moet.

Zie de planningspagina voor onze herziene planning.

Vrijdag 25 Juni

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • WaveList herschreven (Koray)
  • Error handling in MainWindow verbeterd (Koray)

Zaterdag 26 Juni

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Contacts UI toegevoegd (Cathalijne)
  • MainWindow UI opnieuw ontworpen (Cathalijne)

Maandag 28 Juni

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Functionaliteit toegevoegd aan knoppen in MainWindow (Cathalijne)
  • Contacts klasse toegevoegd (Cathalijne)
  • Aantal verbeteringen doorgevoerd in Contacts en MainWindow (Koray)

Dinsdag 29 Juni

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Contacts een QWidget gemaakt (Koray)
  • Benodigde bibliotheken voor de WaveServerComponent toegevoegd aan het project (Koray)
  • WaveServerComponent toegevoegd aan de client, dit component zou voor het ophalen van Waves moeten zorgen (Koray)
  • Verantwoordelijkheid van het starten van het inlogproces ligt niet langer bij de client klasse zelf, maar moet van buitenaf worden aangeroepen (Koray)

Donderdag 1 Juli

Codeveranderingen (voor vollediger overzicht zie SVN logs)

  • Verslag toegevoegd aan de SVN, laatste stukken geschreven (Tom, met klein beetje hulp van Koray)
  • Client massaal herschreven. UI gescheiden van de client klasse, communicatie onderling gaat nu meer op een Qt stijl (signals en slots), kleine geheugenoptimalisaties en een mogelijke memory leak eruit gehaald (Koray)
  • Client documentatie aangevuld in de broncode, hieruit documenten laten genereren met behulp van Doxygen (Koray)