[1] - https://github.com/Draneria/Metallics-by-Draneria_Krita-Brus...
[2] - https://krita-artists.org/t/memileo-impasto-brushes/92952/11...
234 karma · joined April 6, 2021
[1] - https://github.com/Draneria/Metallics-by-Draneria_Krita-Brus...
[2] - https://krita-artists.org/t/memileo-impasto-brushes/92952/11...
I'm trying to solve this issue by using both of these tools with NixOS [1], where I can choose how much security I want for each package, like limiting the files that they can access and/or the entire dbus (practically simulating Flatpak). I mostly use it on proprietary software, like Games, as they have a history with RCEs...
In the end, security is a tradeoff with convenience.
In my case I prefer to work with Elixir because of the community, as I find easier to work professionally with Elixir than some other mainstream languages, as mostly projects follows the same good practices, use the same tools and have good documentation.
[1] - https://gleam.run/
But the selling point of Elixir for me is the quality of life for the dev, the docs and tooling are amazing, the community is very focused, the language itself is easy to read and extend (with the powerful macro system) and the pattern match system, is one of those things I wish every language had.
It's not because of the nix language, It's not because of the CLI, it's because everything is scattered, you have to consult many places to find out how to do things with Nix, here is an example:
Usually, when I need a new complex program, like Steam, I first check the system-wide configuration [1], the wiki [2] and the package list [3], if I just want it on my user, I need to check if Home Manager has an option [4], if it doesn't, I can try using the "home.packages" option. Now, if I need to override something on the package, I need to remember how to do it with [5] [6] (while checking the source code for the package in parallel to find the options).
And then sometimes, on very rare occasions, I need to fine tune something with the nix language, so I need to check the builtins/lib docs [7], but some builtins are not there, so I need to either use nix-doc [8] or find the docs inside the code-bases [9] [10] (they are split between both repos)
For me, this is one of the main pain points of using Nix / NixOS that needs to be solved.
[0] - https://github.com/shiryel/nixos-dotfiles
[1] - https://search.nixos.org/options
[2] - https://nixos.wiki/wiki/Steam
[3] - https://search.nixos.org/packages
[4] - https://mipmip.github.io/home-manager-option-search/
[5] - https://nixos.org/manual/nixos/stable/#sec-customising-packa...
[6] - https://nixos.org/guides/nix-pills/nixpkgs-overriding-packag...
[7] - https://teu5us.github.io/nix-lib.html
[8] - https://github.com/lf-/nix-doc
- Phoenix for web dev
- Nerves for IoT / Embedded systems
- Membrane for multimedia / streaming
Hopefully Nx and Axon will be in this list soon :)
You will be surprised on how much Wayland solved those issues. At least, in my experience, understanding why Sway crashed is a debug flag away. Unfortunately, Wayland is a double edge sword, even more if you want to run games with multiple monitors (but that is a pain even on Windows in my experience).
[1] - http://web.archive.org/web/20190423155359/https://medium.com...
Link: https://github.com/shiryel/rayex
The project's architecture is already ready to use, it just needs more functions implemented from Raylib and I need to figure out how to make it work on MacOS (see issue #7)
Any help would be greatly appreciated :)
But as basic plugins that will provide a great quality of life, I shall recommend those:
Global Search: fzf
Syntax Highlight: nvim-treesitter
LSP: nvim-lspconfig or coc
Dir Nav: nerdtree
Git: vim-fugitive
I also used it to make a small tool to generate the relationships of Elixir's modules: https://github.com/shiryel/graphme
Windows.find_kit_root(key)
And is even better if your language supports pattern match on the parameters like elixir, so you can "overload" the function with many types of arguments, eg:
Windows.find_kit_root(%User{key: key})
Windows.find_kit_root(%Admin{key: key})
Providing different behaviors to the same function name
But obviously, some startups choose because its cool, this ones you shall avoid.