19:06:05 RRSAgent has joined #auto 19:06:05 logging to https://www.w3.org/2022/01/11-auto-irc 19:06:07 RRSAgent, make logs Public 19:06:08 Meeting: Automotive Working Group Teleconference 19:06:46 agenda+ Protobuf experiment 19:07:20 Peter reports contact with Rivian went favorably and setting up next steps 19:07:57 Present+ Peter, Ulf, MagnusG, Ted, Carine, Daniel, Erik, Gunnar 19:08:56 Topic: PR 19:09:19 Ulf: Wonsuk had not responded to review request but Erik made an excellent comment 19:09:32 … I added his fix to a new PR 19:10:00 … I propose we give Wonsuk another couple of days and proceed 19:10:12 Present+ Adnan 19:10:19 zakim, next agendum 19:10:19 agendum 1 -- Protobuf experiment -- taken up [from ted] 19:14:22 [Ulf shares screen, presentation on protobuf] 19:14:28 @@slides 19:15:03 Ulf: I implemented two levels of protobuf. first is all just strings which isn't very compressible 19:15:22 … it was easier to implement and start understanding protobuf more 19:16:14 … 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 19:16:20 scribenick: ted 19:16:24 Chair: Peter, Ted 19:16:27 Scribe: Ted 19:17:39 … in the repo we have a .proto file (schema) with top level message types 19:18:50 … I leveraged my previous compression experiment for providing int values instead of paths 19:19:21 … you can use this map for translating full path to a short integer and back 19:20:15 … I have a utility to convert protobuf into Go language and this file contains quite a few structs, several thousand lines worth 19:21:32 … it also contains getter messages since the first thing you do is populate the struct with values, a form of serialization (marshall) 19:22:20 … this makes it possible to go from struct to serialized byte array 19:22:53 … [as it is cumbersome to act on protobuf within code] wanted the client application to be able to deconstruct back into JSON 19:24:14 … I needed a client for experimenting with compression 19:26:08 … right now there are only four requests supported in the client, you're welcome to experiment with it 19:26:33 … it calculates the compression ratio as that is interesting 19:27:19 [Ulf walks through code on github] 19:28:25 Ulf reviews error response, optional aspects, filters... 19:28:43 s/Ulf reviews error response, optional aspects, filters.../[Ulf reviews error response, optional aspects, filters...]/ 19:28:56 Ulf: all messages are contained in the top level message 19:32:46 MagnusG: request messages are optional, does that mean it is possible to send a malformed request 19:32:54 Ulf: yes if you want to misuse 19:33:08 MagnusG: you can specify oneOf to require one 19:33:36 Adnan affirms 19:33:59 Ulf: I am new to protobuf and glad to hear some here have more experience, anyone is free to improve 19:40:35 [Ulf opens terminal to run demo, starts with a build] 19:50:36 [showing level 1 and 2 described before, different types of requests and compression rates on requests and responses] 19:56:42 Ted: encourage those with additional protobuf experience give suggestions on any way things might be improved 19:56:42 … 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 19:57:10 Ulf: some values not compressed at present 19:58:10 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 19:59:20 … a challenge would be accomodating private branches, the .proto would need to be known on all sides 19:59:37 Ulf: file is generated each time so it could be handled indeed 20:01:09 I have made the request to generate https://www.w3.org/2022/01/11-auto-minutes.html ted 21:16:18 s|@@slides|https://docs.google.com/presentation/d/1PB11dWyghW6MNR24vJfTGtwhIFDANdKZVDNfj93Qe78/edit#slide=id.gdb284aa95f_0_61| 21:16:20 I have made the request to generate https://www.w3.org/2022/01/11-auto-minutes.html ted