Meeting minutes
Peter reports contact with Rivian went favorably and setting up next steps
PR
Ulf: Wonsuk had not responded to review request but Erik made an excellent comment
… I added his fix to a new PR
… I propose we give Wonsuk another couple of days and proceed
Protobuf experiment
[Ulf shares screen, presentation on protobuf]
Ulf: I implemented two levels of protobuf. first is all just strings which isn't very compressible
… it was easier to implement and start understanding protobuf more
… in level two paths are encoded into an int32 value and timestamps are expressing in Unix time so they too are an int32 for compression considerations
… in the repo we have a .proto file (schema) with top level message types
… I leveraged my previous compression experiment for providing int values instead of paths
… you can use this map for translating full path to a short integer and back
… I have a utility to convert protobuf into Go language and this file contains quite a few structs, several thousand lines worth
… it also contains getter messages since the first thing you do is populate the struct with values, a form of serialization (marshall)
… this makes it possible to go from struct to serialized byte array
… [as it is cumbersome to act on protobuf within code] wanted the client application to be able to deconstruct back into JSON
… I needed a client for experimenting with compression
… right now there are only four requests supported in the client, you're welcome to experiment with it
… it calculates the compression ratio as that is interesting
[Ulf walks through code on github]
[Ulf reviews error response, optional aspects, filters...]
Ulf: all messages are contained in the top level message
MagnusG: request messages are optional, does that mean it is possible to send a malformed request
Ulf: yes if you want to misuse
MagnusG: you can specify oneOf to require one
Adnan affirms
Ulf: I am new to protobuf and glad to hear some here have more experience, anyone is free to improve
[Ulf opens terminal to run demo, starts with a build]
[showing level 1 and 2 described before, different types of requests and compression rates on requests and responses]
Ted: encourage those with additional protobuf experience give suggestions on any way things might be improved
… a proprietary compression scheme may well be fine, the approach here reminds me some of EXI that Carine told this group about previously where the schema is known on both ends
Ulf: some values not compressed at present
Ted: as we are low on remaining time for this call, encourage people to use github issues to give feedback and we can maybe discuss more next week
… a challenge would be accomodating private branches, the .proto would need to be known on all sides
Ulf: file is generated each time so it could be handled indeed