jay-aye-see-key
Joined 7 years ago
Joined 7 years ago
If we were chefs a knife would be your laptop, your editor, your cli tools. Not your programming language.
A better metaphor would be the lumber in a building or the soil in a garden. I don’t know what I’d call ruby in this metaphor, maybe “lightweight wood that splinters”…
For #1 this blog post has some good examples of quickly chaining together commands (though personally I rarely use xargs) https://drewdevault.com/2020/12/12/Shell-literacy.html
For #2 once you’ve got a command you like, maybe one that generates a metric, you can now re-run it with ease from your history, saved text file, or an alias. You could also share it with teammates.
Please correct me if there are other ways to achieve the above, shell is the only way I know
Arion can wrap docker-compose and run as a project or part of a nixos config. Did you come across Arion before creating this, and have you compared them?
I had a brief look through your examples and it doesn’t look like compose2nix implements docker-compose’s network per compose file. Is this something you want to add?
I would be interested to know if others have interesting linux desktop software or workflows for working with this data when it comes off your watch
Can you recommend any learning resources for implementing an OT? (Ideally typescript, python, or rust)
The Ubuntu ARM image from their “gallery” works perfectly out of the box so is a good starting point.
This has been my exact experience too. My current theory as to why it doesn't click for me is that it tries to be too much like English. Sure it's fun writing poems all day but try refactoring a poem someone else wrote with any kind of confidence.
That said I love that ruby and rails exist, it seems to unlock creativity in some people and that's awesome.
- homebrew is slow and brittle, between 10x and 100x slower than pacman in my experience, and the only package manager I've used that breaks at least every year
- homebrew is only a userspace package mananger, many applications have their own update mechanisms. I greatly prefer being able to update my entire system with one command.
- xcode is a fragile 10GiB pig that I don't want, but homebrew needs it
- docker has a significant performance overhead on macOS
- the tiling window managers available on macOS are less reliable and don't have the features I value
- some terminal based software is significantly slower on recent versions of macOS, even on a 2019 macbook. I'm not sure what's causing it but there is noticeable lag that I don't get on much older hardware with linux
- documentation; in my experience searching for error messages on macOS results in something like "paste this command into a terminal, no one knows why, and it will break again on the next OS release" or "plug the charger into the left usbc port not the right". Where as on linux I end up on the arch wiki with a fix that makes sense, and I've learned something I find valuable or interesting
- I don't like how macOS is visually turning into iOS, I like that I have the option to use what looks like a "desktop" on linux
I'm learning nix at the moment, and hopefully that can solve a lot of the problems I have with maxOS/brew.
macOS is good, linux is good, as always it depends on what you need.
I've been using tree-sitter for syntax highlighting, simple refactors, and custom text objects in NeoVim recently (and love it, thanks NeoVim devs!). Have a play with the syntax tree it generates https://tree-sitter.github.io/tree-sitter/playground (it can generate a tree for most languages, not just the ones in this playground).
This plugin sets it all up and has some examples: https://github.com/nvim-treesitter/nvim-treesitter-textobjec...
Both the fzf.vim and telescope.nvim plugins provide a fuzzy searchable list of commands; `:Commands` and `:Telescope commands` respectively. The built-in commands have a description but commands from plugins usually just show it's definition.
By default there are some conflicting keybinds like ctrl-o and ctrl-v, but these can be disabled in vscode settings.json so wasn’t a problem.
The main feature that doesn’t work over the neovim-vscode rpc bridge is undo tree, that was important to me. You also have to put up with much slower start up times and slower syntax highlighting because vscode uses lsp highlighting.
But the deal breaker for me was losing any vim plug-in with a ui component like fzf, fugitive, and the file tree I like (fern.vim).
It might work for you, some coworkers switched from vim to vscode-neovim and were very happy with the compromise.