I most commonly use random() for generating names (e.g. docker's container names) and generating test inputs. I don't care about cryptographic safety in either case.
> Microsoft teams is an extremely high quality product already.
This has not been my experience with MS Teams. If I respond to a message on my phone, and then return to my laptop, Teams has disconnected and I have to restart the app on my laptop in order to get updated messages. Scrolling back even 5 minutes in Teams' message history incurs multi-second latency sometimes, so reviewing the context of a conversation you're in is very painful. Threading is handled very poorly in teams and makes teams feel much more like a decades old forum than a chat application.
I do agree this is a good move for Slack, but only because organizations are adopting teams due to its bundling with Office 365, something most companies are already using. Slack has no other way to survive because the people in the org making these decisions aren't concerned with the quality of the tools they are choosing, just the idea they are getting something for free.
I've been using the Markdown Reader Chrome extension and using the browser print function to do this kind of conversion.
What would be really useful (to me personally) is a tool that renders plantUML/mermaid embedded into markdown to a PDF. I haven't been able to find a simple solution that doesn't require writing code to integrate the libraries together, or rendering the images separately and bringing them into the markdown document (which is tedious).
> any stage of the request or the response L4-L7 at FPGA speeds
I also work at F5, and used to work on the FPGA. This is unfortunately not true for TCL iRules. The FPGA basically only operates on L2-4, L7 is all software.
There was some talk about doing L7/iRules in an FPGA but prototypes never produced compelling enough performance gains to make it worth it.
Not mentioned in the article, but bit packed data structures are easier to interpret in hardware and offer more guarantees. If I'm designing an FPGA/ASIC I can predict how many clock cycles a statically sized data structure will need to move through my system, and how much RAM I need while it's being processed.
I have spent a lot of time working with FPGAs that process network packets and many of the performance guarantees relied on the rigid structure of L2-4 protocol headers.
I agree with others here that learning a language has a lot to do with learning an ecosystem, libraries, and culture. To contribute to an existing project, it's not necessary to really know the language that intimately. I "know" a handful of languages, but I have contributed in environments that I don't "know."
To learn languages quickly, I think the best way is by learning the 'building blocks' languages are composed from. How are function arguments passed (value vs reference), how is memory management handled (garbage collected, reference counted, manual?). Learning these lower level language concepts then allows a person to approach a new language by saying "How does this new language X handle concept Y?"
There are still side effects in the system, of course.
But what your database looks like afterwards is the important part.
Can you recover lost data, replay transactions, undo, etc etc?