• 5 Posts
  • 62 Comments
Joined 2 years ago
cake
Cake day: September 7th, 2023

help-circle









  • Vim when I can, and when I can’t, Neovim with plugins (LazyVim). Both are fast. I have had troubles with Neovim and configuration, and it does some things that really annoy me (like autoclosing parentheses - it just messes up everything). Honestly, the only feature that I really need is Go To Definition.

    But vim - I absolutely love it. I started using it nearly 20 years ago and it still does everything one could want if you’re willing to learn the keymaps and commands. Macros, ci), block indentation and so on. It’s even great for editing XML. If the codebases I’m working on these days weren’t so large and complicated, I would still be using it with very little configuration in my .vimrc.







  • I’ve never had the chance to use a functional language in my work, but I have tried to use principles like these.

    Once I had a particularly badly written Python codebase. It had all kinds of duplicated logic and data all over the place. I was asked to add an algorithm to it. So I just found the point where my algorithm had to go, figured out what input data I needed and what output data I had to return, and then wrote all the algorithm’s logic in one clean, side effect-free module. All the complicated processing and logic was performed internally without side effects, and it did not have to interact at all with the larger codebase as a whole. It made understanding what I had to do much easier and relieved the burden of having to know what was going on outside.

    These are the things functional languages teach you to do: to define boundaries, and do sane things inside those boundaries. Everything else that’s going on outside is someone else’s problem.

    I’m not saying that functional programming is the only way you can learn something like this, but what made it click for me is understanding how Haskell provides the IO monad, but recommends that you keep that functionality at as high of a level as possible while keeping the lower level internals pure and functional.


  • This is the thing UI designers never understand[0] - if you keep changing shit around, nobody will ever figure out how to use it. If you keep it consistent and don’t make dramatic changes, users will have a much easier time using it because they don’t have to keep relearning the damn thing. Consistency is the most effective UI paradigm.

    [0] or to put it in better terms, they’re paid to not understand this so they can justify their jobs…