• 1 Post
  • 125 Comments
Joined 2 years ago
cake
Cake day: July 4th, 2023

help-circle
  • Sorts? Not tabs in the way you’d expect but it’s default ones can be sufficient

    Honestly though once you get pretty good with hotkeys you stop using tabs, for all intents and purposes harpoon is tabs, but better, and without the UI. You just mentally usually pick harpoon keys that make sense to save jump points to, like I’ll harpoon FooController.cs to c and FooService.cs to s and FooEntity.cs to e and so one

    And the I jump around with those keys. Usually when working I only need tops 5 harpoon or so for a chunk of work.


  • I still boot in sub 1s so I don’t know what you mean by “bloated”

    Lazy allows you to boot ultra fast by loading stuff in the background later, so “bloat” doesn’t matter

    nvim-dap does literally nothing until you trigger it, so it’s only impact on my startup is like 3 hotkey registrations :p

    It’s a perfectly fine debugger, works great. The fact I can telescope search to fzf my stack trace actually kind of makes it superior? Like you can’t do that sorta stuff in any other IDE I know of

    Also all my navigation stuff like telescope/harpoon/etc still apply when debugging, so I can literally debug faster jumping around the stack trace with hotkeys.

    Neovim doesn’t get any less awesome when it comes to debugging, a lot of it’s power still applies just as much haha


  • A lot of them are dependencies of other plugins.

    Stuff like icons support, and every little feature. Neovim is extremely minimalist to start, so you need plugins just to get something as simple as a scrollbar lol

    Things like git status of files and file lines, all your LSPs, syntax highlighting (for each language you work with), file explorer, you name it, there’s a lot.

    But what’s nice about nvim is for any of these given features, there’s numerous options to pick from. Theres probably a dozen options to choose from for what kind of scrollbar you want in your editor, as an example.

    So you end up with a huge amount of plugins in the end, for all your custom stuff you have configured.

    You have to setup yourself (though theres a lot of very solid copy pasteable recipes for each feature):

    • Scrollbar
    • Tabs(if you want em)
    • bookmarking
    • every LSP
    • treesitter
    • navigation (possibly multiple of them, I use both a file tree, telescope, and harpoon)
    • file history stuff
    • git integrations, including integrating it with the numerous other plugins you use (many of them can integrate with git for stuff like status icons)
    • Code commenting/uncommenting
    • Code comment tags (IE TODO/BUG/HACK/etc)
    • your package manager is also a package (I like lazy for wicked fast open speeds, neovim opens in under 1s for me)
    • hotkey management (I like to use which-key)
    • prose plugins (lots of great options here too, I use nvim for more than just coding!)
    • neorg, so I can use nvim for taking notes, scheduling stuff, etc too
    • debugger via nvim-dap
    • debugger UI via nvim-dap-ui
    • lualine, which is a popular statusline plugin people like to have at the bottom of their IDE for general file info
    • new-file-template which lets me create templates for new files by extension (IE when I make a .cs file and start editting it, I can pick from numerous templates I’ve made to start from, same for .ts, .lua, etc etc)
    • git conflict, which can detect and work with detected git merge conflict sections in any type of file and give me hotkeys to do stuff like pick A / B / Both / Neither, that sorta stuff

    The list goes on and on haha






  • API is just the term for “the surface of something that’s been exposed to you to interact with”

    Libraries, websites, tools, etc all have APIs, it’s just the general term for “this thing has something we can interface with”

    A library is a bunch of code someone else wrote.

    A package is when you use a tool to bundle up a library to make it easier to distribute to other people, usually adding a version # to it, and adding it to so.e popular package manager network so millions of people can find your package easier.

    A framework is a term for a very big cohesive library, with an advanced api, that does a whole bunch of different things that all have stuff in common. Basically a firework is a huge library that provides many many different things to do that all have stuff in common.

    Game Engines for example are frameworks.

    A library of tools to make a bunch of different website components that all work well together and have stuff in common is a framework.

    Etc etc. It’s a bunch of code that doesn’t do anything in it’s own, but provides a bunch of modular pieces you can assemble into something.

    Think of a framework like buying a big box of lego. It’s not anything specific yet, but you can assemble all those pieces together to make infinite different things.









  • Okay but if that happens, musk is right that that’s a bit of a denormalization issue that mayne needs resolving.

    SSNs should be stored as strings without any hyphen or additional markup, nothing else.

    • Storing as a number can cause issues if you ever wanna support trailing zeros
    • any “styling” like hyphens should be handled by a consuming front end system, you want only the important data in the DB to maximize query times

    It’s more likely though it’s just a composite key…




  • They probably do use lots of NoSQL DBs too, which perform better for non relational “data lake” style architectures where you just wanna dump mountains of data as fast as possible into storage, to be perused later.

    When you have cases where you have very very high volume of data in, but very low need to query it (but some potential need, just very low), nosql DBs excel

    Stuff like census data where you just gotta legally store it for historical reasons, and very rarely some person will wanna query it for a study or something.

    Keep in mind when I talk about low need to query, the opposite high need us on the scale of like, "this db gets queried multiple times per minute’

    Stuff like… logins to a website, data that gets queried many times per minute or even second, then sometimes nosql DBs fall off.

    Depends what is queried.

    Super basic “lookup by ID” Stuff that operates as just a big ole KeyValuePair mapping ID -> Value? And thats all you gotta query?

    NoSql is still the right tool for the job.

    The moment any kind of JOIN enters the discussion though, chances are you actually wanna use sql now