← Back to context

Comment by ayewo

2 days ago

Congrats on shipping!

Apart from the obvious question of why you didn't opt to open source the tool :), I'm genuinely curious about how you approached development.

How did you decide for this feature A: "I'll just spawn child processes and read the output of `x-y-z` and `a-b-c` CLI tools, while for feature B: "I'll drop-down to BSD sockets"? Perhaps you have a performance budget: if using the Apple-provided CLI utilities are not fast enough then you drop down to writing BSD sockets?

Thank you!

So, I struggled with that route so much. I've benefited from open source software throughout my entire life (and have contributed to it as well), and I am truly indebted to it. It is my goal in the future to make this open source, but for now, frankly, the money helps set the time aside needed to make this better. Again, I will revisit this once I hit a goal I have in mind.

So yes, performance budget was a key factor. Some CLI tools provide standard, predictable answers in a set amount of time. Others are all over the place on answers and time. Some commands have options to set timeout, size, syn options, and such, while others do not. I have a few commands that are on my short list to replace with custom code - especially around mDNS.