• 0 Posts
  • 16 Comments
Joined 1Y ago
cake
Cake day: Jun 14, 2023

help-circle
rss

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.



They are both UNIXes, that’s quite a lot of similarity and I wouldn’t write it off that fast.


In what way does it limit your freedom? When I first tried OSX I was quite surprised at how customizable it actually is, contrary to all the talk I heard about it.


Macs are actually secure. Not as much as ios, but compared to the general linux userspace, it is like a military establishment vs a homeless tent.


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.


It is always dismissed as too verbose, while in go’s case it is never mentioned, when in fact the latter is way more verbose… People’s bias show.


Rename it to something else, see if it still works, if not revert, else it is needed.


Scala is quite well designed.


It’s about GraalVM’s enterprise edition. The free version was… free since forever.