code logs -> 2018 -> Thu, 19 Apr 2018< code.20180418.log - code.20180420.log >
--- Log opened Thu Apr 19 00:00:38 2018
00:12 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has joined #code
00:12 mode/#code [+o himi] by ChanServ
00:21 macdjord|slep is now known as macdjord
01:07 Jessikat [Jessikat@Nightstar-c6vsc1.dab.02.net] has joined #code
01:13 celmin|sleep is now known as celticminstrel
01:14 Derakon[AFK] is now known as Derakon
01:46
<~Vornicus>
hng. border-collapsed cells with filter hide the borders under the filtered content
02:18 Pink [user1@Nightstar-g7hdo5.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
02:23 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has quit [Ping timeout: 121 seconds]
02:54 Degi [Degi@Nightstar-no3sid.dyn.telefonica.de] has quit [Connection closed]
05:12 Jessikat` [Jessikat@Nightstar-m88bot.dab.02.net] has joined #code
05:14 Derakon is now known as Derakon[AFK]
05:15 Jessikat [Jessikat@Nightstar-c6vsc1.dab.02.net] has quit [Ping timeout: 121 seconds]
05:16 celticminstrel is now known as celmin|sleep
05:22 macdjord is now known as macdjord|slep
05:29 Kindamoody[zZz] is now known as Kindamoody|afk
06:11 Vornicus [Vorn@Nightstar-1l3nul.res.rr.com] has joined #code
06:11 mode/#code [+qo Vornicus Vornicus] by ChanServ
07:30 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has quit [Ping timeout: 121 seconds]
10:31 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
11:29 Degi [Degi@Nightstar-no3sid.dyn.telefonica.de] has joined #code
11:42 Jessikat [Jessikat@Nightstar-rnscae.dab.02.net] has joined #code
11:44 Jessikat` [Jessikat@Nightstar-m88bot.dab.02.net] has quit [Ping timeout: 121 seconds]
14:42 Degi [Degi@Nightstar-no3sid.dyn.telefonica.de] has quit [Connection closed]
14:47 Jessikat [Jessikat@Nightstar-rnscae.dab.02.net] has quit [[NS] Quit: Bye]
15:03 macdjord|slep is now known as macdjord
15:58 mac [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has joined #code
15:58 mode/#code [+o mac] by ChanServ
16:00 macdjord [macdjord@Nightstar-a1fj2k.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
18:44 Jessikat [Jessikat@Nightstar-mmaddb.dab.02.net] has joined #code
19:26 Degi [Degi@Nightstar-no3sid.dyn.telefonica.de] has joined #code
20:01
<&jerith>
I hate working with very new protocols.
20:02
<&jerith>
I also hate trying to figure out what C++ code is doing.
20:02
< [>
it could be doing literally anything
20:02
< [>
best language?
20:04
<&jerith>
Not so great when I'm trying to figure out what I should put in the "target_uri" string field in a gRPC message.
20:07
<&jerith>
The obvious place to discover this (after finding nothing in the docs and failing to turn up a usage example) is the tests for the thing that accepts that message, but I lost track of stuff three includes deep into the test harness setup code.
20:07
< [>
can you run the code?
20:08
< [>
step through w/ the debugger
20:08
<&jerith>
I don't want to debug this bloody thing, I want to talk to its API.
20:09
< [>
oh i thought you were examining already working code
20:10
<&jerith>
It is already working code, I just don't know what input it wants.
20:10
<&jerith>
Well, I do now.
20:12
<&jerith>
I found someone complaining about a similarly-named thing in another gRPC thing and got enough information from that to find another bit of code that had a comment in it with the format I should be using.
20:15
<&jerith>
Which, as it turns out, is "host:port" rather than any kind of URI.
20:19
<&jerith>
HTTP/2.0 seems to be a pretty good idea, although the tooling isn't really there yet.
20:20
<&jerith>
gRPC is a much less good idea, mostly because it's made out of protobuf.
20:20
<&jerith>
And I have never had any kind of good experience with protobuf.
20:27
< [>
i've read blog posts from people that love it, but i've never used it
20:27
<&McMartin>
protobuf may be one of those things that is fantastic if someone else is using it
20:28
<&jerith>
Its two biggest problems are that it's too flexible and that it's not flexible enough.
20:29
<&jerith>
It's sufficiently flexible that you need codegen for packing and unpacking it, and only a very small number of languages have decent codegen.
20:29
<&McMartin>
Given the world I generally live in I often find myself saying codegen stuff is what Make is for, but I acknowledge that this is not a universal or scalable solution.
20:31
<&jerith>
McMartin: I don't object to codegen in general. I object to a nontrivial input format and complicated packing/unpacking rules.
20:33
<&jerith>
The inflexibility is that it doesn't support certain kinds of composition very well, and thus you end up with vast libraries of wrappers for various data types.
20:34
<&McMartin>
Yeah
20:34
<&McMartin>
Carelessness on the C++ end with a JSON-based protocol over here has resulted in an implausibly large generated datatype file
20:35
<&jerith>
So you're not just feeding your own .proto files into the codegen, you're also feeding half a dozen third-party .proto files in at the same time.
20:35
<&McMartin>
One of my endless backburner projects is how to wipe most of that out while retaining the fancy guarantees that C++'s type checker gives me.
20:37
<&jerith>
My very favourite part of the thing I'm working with (I'll mop up that sarcasm later) is the "any" wrapper that consists of a "type_url" and a "value", both strings.
20:38
<&jerith>
So after you've unpacked the message you received, you need to look up the type and manually unpack the value.
20:39
< [>
:/
20:39
<&jerith>
The thing I'm working on at the moment has both JSON and gRPC versions of the API.
20:41
<&jerith>
The protobuf constructs are *significantly* more verbose than the JSON. They nest about twice as deep.
20:42
<&jerith>
The packed binary is nice and small, but the code that operates on the data is pretty bloody awful.
20:43
<&jerith>
To the point where I've already written my own packing/unpacking layer around the generated packing/unpacking layer.
20:50
< Vorntastic>
How implausibly large is implausibly large
20:56
<&McMartin>
30 KLOC
20:56
<&McMartin>
Most of which, admittedly, does not actually turn into actual bytes in the binary
20:57
<&jerith>
Gotta love a message format that has four different kinds of 32-bit signed integer and still needs a separate wrapper type for a 32-bit signed integer.
21:04
< Vorntastic>
What happens to the "unused" code?
21:06
<&McMartin>
It's not that it's unused, it's that it's things like forward declarations, type definitions, blank lines, lines with just braces on them, etc.
21:06
< Vorntastic>
Ah, well
21:08
<&McMartin>
We could save a few hundred KB by being more aggressive about what the compiler is not allowed to generate, but even on mobile devices a few hundred KB of app size is noise
21:19 Kindamoody|afk is now known as Kindamoody
21:53 Degi [Degi@Nightstar-no3sid.dyn.telefonica.de] has quit [[NS] Quit: Leaving]
22:12 Kindamoody is now known as Kindamoody[zZz]
23:12 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Connection closed]
23:50 * Vornicus decides to write a simple undo system
--- Log closed Fri Apr 20 00:00:40 2018
code logs -> 2018 -> Thu, 19 Apr 2018< code.20180418.log - code.20180420.log >

[ Latest log file ]