Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. AI-generated posters don’t have to be horrible(john.hartnup.uk ↗)
    23comments
  2. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    103comments
  3. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    69comments
  4. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    58comments
  5. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    416comments
  6. San Francisco Onion Futures Company(onionfutures.com ↗)
    68comments
  7. "The Secret Life of Circuits" is here(coredump.cx ↗)
    12comments
  8. Cloudflare Quick Tunnels(cloudflare.com ↗)
    285comments
  9. Apple M6 Pro Achieves the Highest Single-Core CPU Score in Geekbench 7(geekbench.com ↗)
    42comments
  10. SDCC – Small Device C Compiler(sourceforge.net ↗)
    18comments
  11. Science Is Open Software(jepedersen.dk ↗)
    38comments
  12. How to Write with an LLM(sockpuppet.org ↗)
    330comments
  13. Saving another 100TB of RAM(cloudflare.com ↗)
    78comments
  14. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    15comments
  15. How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip(ieee.org ↗)
    88comments
  16. Typesafe-computer-use drives a Mac toward a goal for 1/50th of a cent per step(github.com/awlevin ↗)
    51comments
  17. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    32comments
  18. Communication by means of modulated Johnson noise(pnas.org ↗)
    discuss
  19. Ctenophores: Wonders of Biology(quantamagazine.org ↗)
    6comments
  20. NASA-IBM Lunar Foundation open-Source Geospatial AI Model(usra.edu ↗)
    2comments
  21. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    105comments
  22. OpenJev(openjev.com ↗)
    266comments
  23. Goroutine Leak Profiles(go.dev ↗)
    4comments
  24. Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com ↗)
    89comments
  25. Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug(ledger.com ↗)
    70comments
  26. Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)(arxiv.org ↗)
    13comments
  27. Warez: The Infrastructure and Aesthetics of Piracy (2021)(archive.org ↗)
    71comments
  28. Suppress vulnerabilities applying Kubernetes context to scans(github.com/alegrey91 ↗)
    2comments
  29. Veronese's Dogs(publicdomainreview.org ↗)
    1comments
  30. Cyclomatic Complexity in C#(ndepend.com ↗)
    23comments

Documenting architecture: Wireshark, PlantUML and a REPL to glue them all (2017)

141 pointsby 7y agodanlebrero.com
23 comments
7y agoHN ↗

It's really cool, but from my understanding you get only the traffic exchanged with your browser and not between the servers. I wonder if something similar could be done at the server level, aggregating traffic from all the servers, merge together and display

7y agoHN ↗

The bottom half of the example diagram shows traffic between the "backend" and "keycloak" that clearly isn't browser to nginx traffic.

You'd need to be running wireshark on a network interface that could see all that traffic, so yeah - sort of "at the server level" - in the sense that you'd need to be sitting on the server's network(s) to sniff that.

7y agoHN ↗

A really nice use of UML sequence diagrams!

A little off topic, but even though I wrote a UML book a long while ago, I have more or less stopped using hand written UML except for sequence diagrams. Any class diagrams I put in documentation are auto-generated from source code.

7y agoHN ↗

I think it's fine work and really cool.

However, this makes me wonder about the premise of this tool.

Have systems gotten so messy and complicated that we build them without knowing they're actually doing, until after they're built?

In other words, UML diagrams (including sequence diagrams) were intended ways to clarify and reason about systems during design time. This project seems like it could be a reverse engineering tool, but it isn't presented that way.

7y agoHN ↗

I can think of a few use cases that aren't really reverse engineering. Documenting legacy systems that weren't properly documented up front. Documenting/identifying divergence from design time documentation. Documenting a microservice stack where each service is individually well documented but the totality is not. Generating documentation from a prototype to use a starting point for a more structured design process.

Generally, I've seen very few projects that have architecture documentation which is kept up to date past the first release. So it's not an insane idea given the on the ground reality, but yes it does seem a bit like shutting the barn door after the horse is already out.

7y agoHN ↗

Working in secops, we aren't always the ones building the tools, and the products we're required to support never come with this kind of documentation.

7y agoHN ↗

I think it's more about changing architecture and having up to date documentation.

7y agoHN ↗

Jeez Louise I worked with the Oracle BI stuff once and it was so poorly documented that using Wireshark was the only to figure out what all pieces did what and how it all worked. I'd imagine other such enterprisey stuff that's been hobbled together over the years through acquisitions may be similar and these companies are always rather terse or ask you to put in a ticket and wait a month to find out.

7y agoHN ↗

Have systems gotten so messy and complicated that we build them without knowing they're actually doing, until after they're built?

Oh, hey, you've just practically described one popular implicit formulation of Agile. :)

Detailed and coherent design documentation is rare in my experience, even at organizations that are staffed at a level including dedicated staff ostensibly for this purpose. I can think of precisely one place I've worked for that had a design process that produced documentation effective for specifying the project ahead of time and as a reference from then on out. A culture committed to this plus dedicated technical writers who regularly met with a team of a domain expert, tech lead, and UX/UI folks for the purpose of producing project documentation helped a lot.

Other organizations may have had individuals producing documentation but it was a lossy process, magnified when they moved on from the project.

7y agoHN ↗

In 30 years of doing consulting on 'systems' work, it's astoundingly rare to see documentation of any sort that accurately & completely represents the current running state of the system. Sometimes it's close, but more often than not it's whatever was presented to get budget before any development has started.

Occasionally, the folks involved actually believe their doco does represent reality. They are invariably wrong, sometimes in small details, usually in large ones. Tools like this are an invaluable check on reality.

Have systems gotten so messy and complicated that we build them without knowing they're actually doing, until after they're built?

Yes, in general, at least in my world (medium size to enterprise). Agile has made this in practice much much worse.

7y agoHN ↗

This looks very useful. Thanks for sharing! And @danlebrero, thanks for making this!

7y agoHN ↗

Wireshark creates tcp sequence diagrams out of the box, they might even be exportable...

7y agoHN ↗

Would be cool to add osquery or similar to the mix and get process information to pair up with the network traffic.

7y agoHN ↗

It is cool (compared to Visio or even Rational Rose), but it makes me wonder about the value of the diagram itself. The textual input is just as readable and takes up less space on a screen (or, God forbid, a printed piece of paper) - other than giving managers a warm and fuzzy feeling that there's a pretty picture there, why bother generating the diagram at all?

7y agoHN ↗

Depending on how you organize your relationships, the diagram can make shared dependencies more clear.

If you have multiple levels of inputs and outputs, you might define a set of relationships together that are all related to a single output. In this case shared inputs are not trivially realizable in the text.

E.g.

    @startuml

    database DB1
    database DB2
    
    ... lots of other artifacts ...

    artifact ArtifactN

    DB1 --> Artifact1
    ... lots of other input to Artifact1 ...
    
    ... other relationships grouped based on output - more than a screenful - only some of which have DB1 as input ...

    DB1 --> ArtifactN
    @enduml

In the above, it might not be clear how often DB1 is an input to an artifact. Whereas the diagram will show the size of the tree pretty clearly.

It is unlikely that such a diagram would be very illustrative to its author, but the visual representation may be a much better communication tool to others who are not as intimately familiar with the system in question.

7y agoHN ↗

I really like this! I like the notion of automatically generated documentation, because it's always in line with what the source code is doing (or should be). Thanks for making this!

7y agoHN ↗

This is a cool project but how does it take care of load balancers in the flow?

I think most LBs terminate TCP and then create a new connection to the backend.

7y agoHN ↗

I haven’t read the source code, but I assume that it just looks at the timings of the request. After all, it’s just one user, no need to worry about 50 concurrent requests.

7y agoHN ↗

This is the greatest idea! I've been writing soapui test cases that show the communication flow between microservices and use cases to provide new developers (and product owners) some incite into how the application is hung together. Something like this is the logical next step and exactly what I was hoping I could derive from new-relic/open tracing/logs (but these are only as good as the technical details)

Nice work I look forward to delving deeper