• 0 Posts
  • 37 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle
  • It can be hard to bootstrap yourself up from zero followers. I’d recommend posting something just so that people have an idea of the kind of thing they can expect if they follow you from checking out your profile. But you probably won’t get much engagement from your own posts at first, so it will probably be more fun to just reply to other accounts.

    Bluesky has a feature where you can set up customized feeds to filter for any kind of content you want. The person who saw your post might have seen it in the “newskies” feed which just contains every first post that any account makes for example. So one way to get engagement can be to write posts that show up in a certain feed that people follow, like there exist some feeds that are based around certain topics that usually trigger based on your post containing certain keywords. Most people just use the following feed though, I think.






  • It’s not that much of a strain since it only handles DNS traffic.

    When you go to e.g. programming.dev, you computer needs to know the actual IP and not just domain name so it asks a DNS server and recieves an answer like 172.67.137.159 for example. The pihole will just route the traffic to a real DNS server if it’s a normal website or give a unkown ip kind of answer if it’s a blacklisted domain. Actually transmitting the website which is the bulk of trafic is handled without the piholes involvement.


  • You’re propably better of not worrying too much about the awesome-neovim list until you’re more familiar with nvim itself

    I thought LSP support was built into nvim. Why are there so many LSP plugins?

    Most of the plugins seem to be adding bells and whistles to the core LSP functionality and can be safely ignored. The main one that I recomment is nvim-lspconfig which makes it easier to get servers up and running. Neovim itself knows the lsp protocol but isn’t aware of any particular lsp servers. lspconfig comes with premade configurations for different servers so that you don’t have to e.g. tell neovim where to look for the executable or which servers handle which filetypes and so on. It is doable to use LSP without this plugin as well, it just means more boilerplate in your config file.

    And what the hell is treesitter and why do I need it?

    Treesitter is a different way of parsing files for e.g. syntax highlighting. Vanilla (neo)vim uses a pile of regular expressions to perform syntax highlighting essentially, while treesitter actually parses the source files in a way that is aware of the way the target language works. Treesitter might know the difference between a macro and a function for example, and can highlight them differently. You can also querry the syntax tree that tressitter has parsed for use in custom scripts or plugins. Also completely optional unless you want to use a plugin that depends on it.

    As for plugin manegement, I use vim-plugged (which is a vim plugin but is also compatible with neovim). You basically just list the github/gitlab repos you want in your .vimrc file and run a command to download/update them.

    My lsp code in my init.vim file is as follows (taking advantage of nvim-lspconfig): https://pastebin.com/0Wy1ASwk. Adding a new lsp means making sure that the server itself is intalled (e.g. through my package manager) and then adding another line in the langs object, like when i added erlangls i just added erlangls = {}, on line 19.

    (EDIT: For some reason the nmap('gd', vim.lsp.buf.definition) line is repeated a bunch of times in the paste bin. That’s not on purpose)

    Debugging is imo a weak point for both vim and neovim, there’s nvim-dap and vimspector which takes advantage of LSPs sister protocol DAP (debug adapter protocol). Setting it up is principaly similar to LSPs. Vim and neovim also have the builtin termdebug plugin which you can load using packadd termdebug in you .vimrc file and allows you to debug using GDB.




  • I agree in regards to image generation, but chat bots giving advice which risk fueling eating disorders is a problem

    Google’s Bard AI, pretending to be a human friend, produced a step-by-step guide on “chewing and spitting,” another eating disorder practice. With chilling confidence, Snapchat’s My AI buddy wrote me a weight-loss meal plan that totaled less than 700 calories per day — well below what a doctor would ever recommend.

    Someone with an eating disorder might ask a language model about weight loss advice using pro-anorexia language, and it would be good if the chatbot didn’t respond in a way that might risk fueling that eating disorder. Language models already have safeguards against e.g. hate speech, it would in my opinion be a good idea to add safeguards related to eating disorders as well.

    Of course, this isn’t a solution to eating disorders, you can probably still find plenty of harmful advice on the internet in various ways. Reducing the ways that people can reinforce their eating disorders is still a beneficial thing to do.







  • The help pages for buffers, tabs and manipulating windows (:help CTRL-W) are always a good place to start!

    Some basic pointers:

    Buffers

    A buffer is some text that vim has in memory, usually linked to a file, but not necessarily.

    You might want to :set hidden to allow for buffers to exist without being open in any window.

    I have this mapping in my .vimrc for moving between buffers

    " switch between buffers
    nnoremap <leader>b :ls<cr>:b<space>
    

    If you hit the leader key (backslash by default) you can see all open buffers. You can then type one of the numbers preceding the buffers, or start typing the name of one of the buffers and then tab complete.

    Windows

    A window is a particular view into a buffer. You can have windows that point to the same buffer but are scrolled to different places which can be convenient if you want to look at different parts of the same file side by side for example. You can split the current window with C-W S (horizontally) or C-W V (vertically). You can also close the current window with C-W Q. One common way to move between windows is C-W + one of hjkl, but there are a ton of other ways that can sometimes be more convenient listed under :help CTRL-W.

    Tabs

    A tab is a collection of windows. You can create a new tab with :tabnew or C-W T. You can navigate between tabs with :tabnext or gt and :tabprev or gT. Tabs are usually a bit counter-intuitive when coming from other editors since they work differently in vim, but they’re very convenient once you get used to them imo.

    Jumps

    Jumps are also worth checking out, the short version is that you can go to your previous position with C-O and then back with C-I.