• 1 Post
  • 235 Comments
Joined 1 year ago
cake
Cake day: June 17th, 2023

help-circle

  • The author clearly doesn’t realize that they still mock in their examples. I understand the annoyance with mocking away the complexity, however.

    To address your second claim - doing IO in tests does not mean testing IO.

    I test my file interactions by creating a set of temporary directories and files, invoking my code, and checking for outcomes. That way I can write my expectation before my implementation. This doesn’t test IO, merely utilizes it. The structure in temp that I create is still a mock of an expected work target.

    Very similarly I recently used a web server running in another thread to define expectations of API client’s behavior when dealing with a very ban-happy API. That web server is a mock that allowed me to clearly define expectations of rate limiting, ssl enforcement (it is a responsibility of an API client to initialize network client correctly), concurrency control during OAuth refreshes etc., without mocking away complexities of a network. Even better, due to mocking like that I was able to tinker with my network library choice without changing a single test.

    Mocks in the general sense that author defined them are inevitable if we write software in good faith - they express our understanding and expectation of a contract. Good mocks make as few claims as possible, however. A networking mock should sit in the network, for example, lest it makes implied claims about the network transport itself.



  • Teeth cannot produce enamel. Enamel is not a living tissue and it was produced by cells outside of the tooth in a coral-like manner. In order to grow a new tooth, you need it to be fully surrounded by specialized living tissue for the whole growth cycle.

    PS: I honestly expected something like this to come out of bioelectric computation research, but progress seems slower there. Or rather knowledge and techniques in other fields is reaching critical mass, giving us these advances.










  • Genocide is not a numbers competition. Fucking get lost with that narrative.

    Convention on the Prevention and Punishment of the Crime of Genocide is literally four pages long, with barely 30% fill. It takes less than 10 minutes to read it fully. It takes one minute to get to the part that you directly contradict.







  • If you use HTTPS, the attacker can still see what websites you connect to, they just can’t see what you are sending or receiving. So basically they can steal your browsing history, which defeats the purpose of a commercial VPN for many users.

    This is blatantly false. They can see IP addresses and ports of you connect to from IP packets, and hostnames from TLS negotiation phase (and DNS requests if you don’t use custom DNS settings). HTTP data is fully encrypted when using HTTPS.

    If exposing hostnames and IP addresses is dangerous, chances are that establishing a VPN connection is as dangerous.