Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)KA
Posts
0
Comments
44
Joined
2 yr. ago

  • Security doesn’t work like that and I find it important to share the insecure nature of most linux distros with many people, hopefully to make it improve one day.

    Currently a make install can do literally anything to your computer besides installing a video card driver (as per the old xkcd comic) and sure there is firejail.. but let’s be honest, how often do you use it? Defaults matter, and thus linux is insecure.

    Also, again, how is osx locked down? What’s a concrete thing you can’t do on it?

  • Package management is the ultimate problem that was previously left unsolved (no, docker just pushes the problem away, doesn’t solve it. That apt install won’t be the same now as it was when you wrote it). Nix is the first thing that actually solves it properly.

  • I believe we should have a new word that differentiates between ultra-basic tiny unit tests, and bigger unit tests that are still not integration tests.

    E.g. rust and some other newer languages have a way to write basically an inline test for a function — that would constitute my former category. These make sense during development as a reality check. “Yes, this ad hoc stack I need inside this class should have two elements if I push two elems” sort of thing. That implementation may not even be accessible from the outside in case of an OOP language so you can’t even properly test it. Also, these are the ones that should change with the code and removing them is no big deal.

    The other kind should work against the public APIs of libs/classes and they should not be rewritten on internal changes at all.

  • That doesn’t mean you are a shit coder, you are just likely forgetful. I also find stupid shit in my committed code, though that is also due to me not caring too much (I guess I really have burned out at my previous work place).

    Now I’m at a better job, hopefully I can take proper care of my work here! Hopefully you don’t suffer from burnout.

  • I do believe that static typing is at least a local optimum, but I am still not entirely convinced. Rich Hickey is a very convincing presenter and I can’t help but think that he is on to something — with Clojure the chosen direction is contract-typing, which is basically a set of pre- and post-conditions for your functions that are evaluated at runtime. Sure, it has a cost and in the extremes they are pretty much the same as dependent types, but I think it is an interesting direction — why should my function be overly strict in accepting a “record” of only these fields?

  • It’s not that most people are bad at it, they are just out of context.

    Like, I am completely swamped with a completely different business area of the code, besides checking for obviously dumb things, what can I really tell about a diff to a very separate part of the code which I may have never worked on before, with business requirements I don’t understand as I was not part of the 10 meetings that happened between the dev of the given ticket and BAs?

  • It also depends on the specifics — in many cases when a GUI is just a wrapper over the CLI tool, it is instructive to learn the CLI, similarly how you are a better programmer if you know about at least a layer beneath the one you are programming at (e.g. you can reason about this usage of hashmap because you roughly know what it does).

    It is probably the most visible in git, but if you can only do commit and push from a GUI, just please learn the CLI as well. You don’t have to use it, but understanding it is important and the GUI may abstract away too much from you.

  • Languages also have inner consistency. E.g. the mentioned python len function is inconsistent with the rest of the same language - and that is a statement that is true in itself, without an external reference point.

  • Java

    Jump
  • Memory is an implementation detail. You are interested in solving problems, not pushing bytes around, unless that is the problem itself. In 99% of the cases though, you don’t need guns and knives, it’s not a US. school (sorry)

  • Folder

    Jump
  • Though to add: many things in your file system are listed as “files” in a directory, but are completely virtual with varying ways on what they do when written to/read from. (Also, linux has streams and files, not only files) E.g. /dev/null will read zeros, and discard data written to. But it has no physical backing.