MSDO Seminar 9 on 18/3 2022

Place: Preben Horning Stuen.

The agenda is as last time - peer review and invited talk. Invited talk by Torben Haagh, Stibo Systems, at 9.15. Please review two groups' draft report and get feedback from two other groups. Please use the 'Review Guide' as - well - review guide.

To upload your report: Hit the new entry in the BS menu 'Peer Review', and click on the 'PeerReview 2' link. This should bring you to a blackboard folder where you can upload and download the reports. Please name the reports using your group name and delivery number ala 'Papa-2.pdf'!!!

Unfortunately, three groups have decided NOT to participate in the review this seminar, due to various reasons.

The review pairing table (updated 16/3) is as follows:

-----------------------------------------------------------------------------
| Group         |      Reviews |      Reviews |  Feedb. from |  Feedb. from |
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
| Alfa          |    Golf-Lars |  Golf-Mogens |      Foxtrot |  Golf-Mogens |
-----------------------------------------------------------------------------
| Echo          |    Golf-Lars |  Golf-Mogens |         Lima |    Golf-Lars |
-----------------------------------------------------------------------------
| Foxtrot       |         Alfa |         Lima |         Lima |    Golf-Lars |
-----------------------------------------------------------------------------
| Golf-Lars     |      Foxtrot |         Echo |         Echo |         Alfa |
-----------------------------------------------------------------------------
| Golf-Mogens   |         Alfa |         Lima |         Echo |         Alfa |
-----------------------------------------------------------------------------
| Lima          |      Foxtrot |         Echo |      Foxtrot |  Golf-Mogens |
-----------------------------------------------------------------------------


        

At the seminar, we will organize the feedback according to this table:

          10.35           11.10     lunch   12.40             13.15    
--------------------------------------------------------------------------------------------
Al   |  Al -> GL (1) |  Al -> GM (1) |    Fo -> Al (1) |    GM -> Al (1) |       ->    (0) |
Ec   |  Ec -> GM (2) |  Ec -> GL (2) |    GL -> Ec (2) |    Li -> Ec (2) |       ->    (0) |
Fo   |  Fo -> Li (3) |  Li -> Fo (3) |    Fo -> Al (1) |    GL -> Fo (3) |       ->    (0) |
GL   |  Al -> GL (1) |  Ec -> GL (2) |    GL -> Ec (2) |    GL -> Fo (3) |       ->    (0) |
GM   |  Ec -> GM (2) |  Al -> GM (1) |    GM -> Li (3) |    GM -> Al (1) |       ->    (0) |
Li   |  Fo -> Li (3) |  Li -> Fo (3) |    GM -> Li (3) |    Li -> Ec (2) |       ->    (0) |
--------------------------------------------------------------------------------------------
        

The notation 'Os -> Pa (1)' must be read as 'Group Oscar provides feedback to group Papa at table 1'. Each review session is about 30 minutes with 5 minutes break to find the next table.

Between sessions there is "free supervision" meaning you can work on the project and consult me or your peer review groups for further information.

As a curiosum: Inspired by the talk by Mathias at seminar 3.2, I found it was about time I tried writing some code in Go, and actually tried making a MS architecture with services in multiple languages. So - I have rewritten my CaveService from last course into Go, to serve both purposes. A few experiences:

  1. Having written C, C++ and Java, Go is not that unfamiliar. From "watching the first you-tube video, downloading the book "Go in 24 hours" and reading it, making the first test program, making the first server, switching to 'Gin Gonic', reimplementing 'Direction' and 'Point3', implementing a FakeObject storage, making all CaveService end-points, and until my original CDT passes", I count 13 hours. Quite too many of these hours were probably spent on googling 'how to convert a string to int in Go' :)
  2. Go is not object-oriented! I spent the first couple of hours 'unlearning' all the nice OO stuff, going back to 'I write a procedure' mode again. And no exceptions! I am not that happy about either.
  3. But the language is small and consistent. Not a lot of weird ways of doing the same, so you learn it quite fast.
  4. CDT's are fantastic! The last tests were run, simply by running my CDT developed for my own Spark-Java on the new Go based CaveService, and fixing the last minor issues in the Go implementation.
  5. CDT's does not catch all issues. My own Spark-java implementation ignores multiple /'es in a path, and accepts "msdo/cave//room/(0,0,0)" but Gin Gonic does not! But my CDT is well behaved, whereas my Connector code is not. I found the bug in a manual end-2-end test.
If curious, you can find the code here: caveservice-go.zip. Do not give it to the students attending the fagpakke the next time :).