sequenceDiagram
participant User as 🧑 User
participant Frontend as 🌐 Frontend (Vanilla JS)
participant Backend as ⚙️ FastAPI Backend
participant Memory as 🧠 In-memory List
This is a document which tries to collect common Pitfalls that developers fall into when learning React for the first time.
This is usually caused by misunderstanding the component lifecycle. Components in React render synchronously, which means that the first time a component renders it will often have no data, or empty data.
Example:
When setting up Language Server Protocol on Neovim, what plugins do what can be pretty confusing. So this table is a list of the most common plugins people use and what they are and why they are.
Plugin | Role | Why? |
---|---|---|
lspconfig | Configuring the language servers | You can use neovim's built in vim.lsp.start() function, but often we don't know all the command line arguments and options needed to pass to that function, so lspconfig is really just a database of a bunch of configurations for lsps |
mason | Installing language servers | Mason will automatically download and install the actual language server programs. This is optional because if you install an LSP server in your $PATH manually you don't necessarily need this |
mason-lspconfig | Automatically setting up lsps when you install them | This glues lspconfig and mason together, So when an lsp is configured the setup function for it will be automatically called, not necessary if you want to manage your LSPs manually |
This is my curated list of the neovim plugins I can't live without
Note: if you are just starting out, check out kickstart.nvim
- Lazy.nvim - The plugin manager I use. Not to be confused with LazyVim the neovim distribution.
- lspconfig - The must have plugin for configuring LSP support in neovim.
- nvim-cmp - Completion engine for neovim. Without this you won't get autocomplete for anything
- oil.nvim - A magical plugin which lets you browse and edit your files and folders like they are in an editor buffer
This is my curated list of command line utilities that I can't live without
- neovim - Enough said, you either use neovim, or you don't, I'm not going to tell you to use vim, but if you do, neovim is the way. See my neovim must have plugin list here
- zsh - My shell of choice.
- zoxide - zoxide is a fuzzy matching
cd
command. It will automatically remember commonly visited directories, and you can jump to them instantly. - fzf - fzf is a tool which will do fuzzy searching. Many of the other tools I use integrate fzf. For instance, zoxide's zi command uses this. You can also use it in your own shell aliases and scripts.
- starship - Starship is a cross platform shell prompt. I use this so I can have the same prompt no matter which shell I'm using.
- [lsd](https
- Because when you run docker desktop for Windows, it will be creating two WSL instances behind the scenes anyway. This will take up more resources than this method.
- Docker desktop attempts to inject the docker commands into your existing WSL instance. It does this through a series of hacks that frankly are just complex and prone to breakage.
- Bind mounts are from Linux to Linux. When you run Docker Desktop on Windows, you are bind mounting from the Windows filesystem to a Linux system. This can make things like hot reloading web frameworks not work very well. (this is because it can't recieve filesystem events when you save the files)
NewerOlder