• 1 Post
  • 26 Comments
Joined 2 years ago
cake
Cake day: June 13th, 2023

help-circle
  • I think this is the most important aspect of Linux accepting more rust contributions. More and more existing maintainers are aging out, and people just don’t learn or want to build large applications in C anymore. From what I understand companies doing proprietary kernel development have largely made the rust transition for new code at this point, so fewer and fewer systems level programmers will be used to C (and C++ over time) for these tasks. Existing maintainers pressure against rust development could become a threat to the long term viability of the kernel.








  • I don’t really think it’s any of those things in particular. I think the problem is there are quite a few programmers who use OOP, especially in Java circles, who think they’re writing good code because they can name all the design patterns they’re using. It turns out patterns like Factory, Model View Controller, Dependency Injection etc., are actually really niche, rarely useful, and generally overcomplicate an application, but there is a subset of programmers who shoehorn them everywhere. I’d expect the same would be said about functional programming if it were the dominant paradigm, but barely anyone writes large applications in functional languages and thus sane programmers don’t usually come in contact with design pattern fetishists in that space.






  • A dedicated server is needed because something needs to keep a catalog of the smart devices available on your network and ideally be accessible to many people in one household. You could make a system that went phone -> device but you would need to set up each device on each phone you wanted to use, which isn’t a great user experience. You could also run into issues where devices would need to handle multiple conflicting commands from different users coming in at once. Since smart devices are usually trying to use as little power as possible, that extra complexity would hurt you in that department. The third reason is that having a separate server enables automated workflows that would depend on an always online server that orchestrates multiple devices. For example, let’s say you have some automatic insulating blinds, a smart thermostat. You want to raise and lower the blinds to maximize your energy efficiency. Since you have the dedicated server, that server can check the temperature set point of your thermostat, current weather, and sunrise\sunset times. If it’s sunny out, and your set point is higher than the outdoor temperature, the server can raise the blinds to let warm sunlight in, and vice versa. If only your phone could control the devices a workflow like this couldn’t work when you were out of the house.


  • I wouldn’t recommend it. The Git documentation itself doesn’t recommend rebase for more than moving a few unpushed commits to the front of a branch you are updating. Using it by default instead of merge requires you to use --force-push as part of your workflow which can lead to confusing situations when multiple developers end up commiting to the same branch, and at worst can lead to catastrophic data loss. The only benefit is a cleaner history graph, which is rarely used anyway, and you can always make the history graph easier to read with a gui without incuring any of the problems of rebase.




  • I think vscode has definitely come a long way since it first dropped several years ago. You can definitely get auto complete, goto, lining, etc. Via the LSP framework, so all those things should work for python and c with some plugin installs and maybe a bit of configuration. The built in debugging support is also really nice.

    Neovim is basically the same as vim in terms of its editing modes. Vim and neovim use a action -> select paradigm eg. To delete a word you would type d (for the delete action) then w (to select the word). Helix uses a select -> action paradigm so to delete a word you would press w then d. One of the nice things about this is you can see what text you’ll be operating on before you actually perform an action. Helix also supports multiple cursors, which can be more familiar if you’re used to sublime, atom, etc. Both have support for LSP so you can basically get code intelligence on par with most IDEs for many languages. Helix is generally a bit easier to configure if you’re just using the base package, but isn’t as customizable and doesn’t support plugins yet.

    If you want to check out neovim I’d recommend using a pre-built configuration like Lunarvim or Lazyvim these are just configuration distributions that take a lot of the legwork out of bringing neovim up to par with modern editors. Think of it like copying someone’s dot files.


  • As far as I’ve seen many code Ai assistants operate over the LSP framework and work in most editors, and maybe a chat window that’s pretty easy to add to most editors via a plug-in. Adding something like live collaboration is a bit more legwork

    What features do you feel are missing from something like vscode? I’m a long time vim/neovim user but most of my co workers use vscode for everything with no complaints. I’ve actually been pretty jealous of stuff like jupyter integration.

    If you can’t get used to vim, it might be worth checking out something like Helix it’s editing model is a bit different and clicks better for some people.