apg
2017-10-26 18:44:46

@apg has joined the channel


notjack
2017-10-26 18:53:59

I’m in NYC this week for work conference so I haven’t had much time, but here’s a brief status update on the net2 work: - The “transport” interface is mostly designed and documented, along with data types needed for it (ip addresses, domain names, URI “reg-name” values, etc.) - Figured out how to properly use UNIX domain sockets as a URI authority without breaking the relevant RFCs, so net2 will be able to treat remote connections and local socket connections in a uniform way - Implemented some new stuff in the disposable package that net2 will use for connection management

Stuff I’m working on next:

  • Designing how “connectors” will work, specifically how to ensure they’ll support automatic/generic connection pooling properly
  • Fleshing out design of net2/system (which uses generic stuff in net2 to construct TCP connections / unix sockets / TLS tunnels / etc.)
  • Figuring out how logging should work - currently leaning toward connectors using disposables to add automatic logging to all connection info since it’s really useful to just have by default
  • Thinking more about how generic listeners will work

After those bits are designed and documented I’ll focus on implementing them before designing higher-level stuff


notjack
2017-10-26 19:04:51

also, neat thing I found out: gRPC uses HTTP2 as a transport layer so Racket might get gRPC support out of this


apg
2017-10-26 20:11:01

gRPC support would be nice


apg
2017-10-26 20:11:11

there is a HTTP1.1 gateway for gRPC, too


apg
2017-10-26 20:11:49

so, the bigger need, really, is good protobuf support.


apg
2017-10-26 20:12:01

(does that exist yet?)


notjack
2017-10-26 20:12:32

IMO, due to HTTP1.1’s lack of request multiplexing the perf would be so incredibly bad that using gRPC over 1.1 for any non-toy project would be a huge mistake


notjack
2017-10-26 20:12:54

there is the murphy-protobuf package that used to be on PLaneT, not sure if it’s been ported to <http://pkgs.racket-lang.org\|pkgs.racket-lang.org>


apg
2017-10-26 20:13:35

it also looks a bit old, so probably doesn’t support newer versions


apg
2017-10-26 20:13:49

a #lang protobuf would be… maybe interesting?


notjack
2017-10-26 20:13:55

maybe


notjack
2017-10-26 20:14:10

I’ve got ideas for IDLs like that but they all require a lot of infrastructure libs be built up first


apg
2017-10-26 20:14:37

probably makes sense to utilize .proto, really


notjack
2017-10-26 20:16:10

for .proto files specifically, my “ideal” solution would be a #lang protobuf that let you turn a .proto file into a racket module by just sticking that lang line on top (removing the need for racket code generation tools), coupled with a way to tell racket / drracket to treat all files with a certain file extension as having that lang line by default so you don’t actually need to edit existing proto files


apg
2017-10-26 20:17:18

so https://bitbucket.org/chust/racket-protobuf/ builds a (define-message …) that the compiler emits


apg
2017-10-26 20:17:21

that seems smart


notjack
2017-10-26 20:17:53

(whoa bitbucket’s new UI threw me off)


notjack
2017-10-26 20:18:39

oh that’s the murphy protobuf lib!


apg
2017-10-26 20:19:23

it is?


notjack
2017-10-26 20:19:26


apg
2017-10-26 20:19:50

murphy is Thomas Chust?


apg
2017-10-26 20:19:59

or did Thomas Chust recopyright everything?


notjack
2017-10-26 20:20:27

unsure


apg
2017-10-26 20:20:30

¯_(ツ)_/¯


apg
2017-10-26 20:20:42

anyway. it’s an old protobuf spec and would need updating. :slightly_smiling_face:


notjack
2017-10-26 20:20:48

might be someone else “took ownership” and ported it to new repo? that happened a few times during transition from planet to pkgs


notjack
2017-10-26 20:21:11

but before doing any of this stuff, http has to not suck :p


apg
2017-10-26 20:22:44

haha. protobuf is useful even without gRPC


notjack
2017-10-26 20:23:19

yeah you can send serialized proto messages as http request and response bodies directly, so you don’t need gRPC’s definition of services and service methods


apg
2017-10-26 20:24:26

so, just for personal usage. i’ve got trillions of data points that are sitting as protobuf


apg
2017-10-26 20:24:40

well.. not “personal” but work stuff


apg
2017-10-26 20:24:48

that slicing and dicing with protobuf would be nice for


apg
2017-10-26 20:24:56

need to do some prototyping of data storage things


notjack
2017-10-26 20:25:33

that makes sense


notjack
2017-10-26 20:25:56

for now I’m trying to limit the scope of stuff I work on in this space exclusively to networked / distributed stuff


notjack
2017-10-26 20:26:27

so how important something is to that space is the metric I’m using to prioritize


notjack
2017-10-26 20:28:56

only slightly related: proto3 does bad things with unknown fields that break things when they’re used in proxies


apg
2017-10-26 20:34:19

@notjack fair! as someone who has spent the last few nights doing things to slideshow, and then working on building a sokoban game (in a slightly odd way. each tile is a pict, and I build the board by folding vl-append, and htl-append, then draw that pict into the canvas — seems slow, actually, but easy)… I appreciate the idea of focused work.


notjack
2017-10-26 20:35:17

I’m a fan of my own focused work letting everyone else spend more time on whatever work they’re doing, focused or otherwise, that’s even slightly related to mine :P


apg
2017-10-26 20:35:49

oh, me too!


apg
2017-10-26 20:35:54

“you do you”


notjack
2017-10-26 20:36:02

racket is neat and more people should have the stuff they need to make neat things with it