5 comments

  • melodyogonna4 hours ago
    Little things like this are why Go is great. People make arguments against Go based just on available language syntax, but languages are more than just syntax; it is about the end-to-end development flow. I actually think C# and the .NET platform are the only other ecosystem that looks at development the same way. In most other ecosystems, you almost always need to step outside what the built-in language platform provides for any moderately complicated use-case.
    • blainsmith3 hours ago
      I agree with you about C# there. I don't use it really at all, but the times I did it felt like I was writing Go with how nice the stdlib was and that I could just use the dotnet CLI on Linux too. It was pleasant and productive to use.
    • systems2 hours ago
      do you mean use none core libraries &#x2F; 3rd party libs or using libraries from different languages like how some libs or frameworks from different languages create bindings to python libs<p>many C# libs are available via Nugets, which are not more or less complicated than other languages package managers<p>i personally think C# package management is more obscure, compared to other languages
      • melodyogonna2 hours ago
        I mean that in both cases, the core language platform provides the tools and libraries you need to develop complete applications; you don&#x27;t have to introduce external dependencies or resort to writing low-level data structures and data types.
  • Xeoncross10 minutes ago
    Nice! Tracking connection reuse is really important if you are running any kind of benchmarks or comparisons both as the author of a new tool &#x2F; service and as the person evaluating different options or client libraries.<p>I&#x27;ve hit a lot of walls not ensuring I was using connection pools correctly even when the service I&#x27;m calling was local&#x2F;docker. File descriptor exhaustion happens often if you&#x27;re not careful.
  • blainsmith3 hours ago
    Author here... Thanks for sharing this. It has been fun to use while we get ready to launch <a href="https:&#x2F;&#x2F;probes.dev" rel="nofollow">https:&#x2F;&#x2F;probes.dev</a> with tracing being core to the service.
  • s-macke4 hours ago
    I wish I had known this two years ago. I ended up writing my own embedded connection struct to trace these things [0].<p><pre><code> type Connection struct { net.Conn OnEventCallback func(clientClosed bool, serverClosed bool, err error) } </code></pre> [0] <a href="https:&#x2F;&#x2F;github.com&#x2F;s-macke&#x2F;SlapperX&#x2F;blob&#x2F;master&#x2F;src&#x2F;tracing&#x2F;tracingConnection.go" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;s-macke&#x2F;SlapperX&#x2F;blob&#x2F;master&#x2F;src&#x2F;tracing&#x2F;...</a>
    • blainsmith3 hours ago
      That get&#x27;s the job done too for those events depending on what you need them for. httptrace could be heavy handed if all you want is simple events like you show.
  • Zambyte4 hours ago
    hn title mangling strikes again.