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

help-circle

  • Have you ever learned about the following in VIM:

    • H, M, L, 22H, …,: vertical cursor placement
    • zt, z0, zb: vertical scroll positioning
    • 0, $, gm, gM: horizontal cursor placement
    • w, e, b: word based cursor movement

    Simply holding j or k at times also works, even more so with a decently high key repeat rate.

    Of course there’s a lot more: https://vimhelp.org/motion.txt.html

    The trick is to only learn a couple new movement mappings at a time and use them during one’s workflow for a while, up until they feel ingrained. Then repeat, iteratively building up one’s movement skills in VIM.

    One can say many things about VIM, but not that learning it’s movement mappings will make your required APM (let alone mouse clicks) go up to “get stuff done”. Honestly, once a basic set of these movements has been learned, any other editor without them will feel like a drag.



  • So AFAIU, if a company had:

    • frontend
    • backend
    • desktop apps
    • mobile apps

    … and all those apps would share some smaller, self developed libraries / components with the frontend and/or backend, then the “no submodules, but one big monorepo” approach would be to just put all those apps into that monorepo as well and simply reference whatever shared code there might be via relative paths, effectively tracking “latest”, or maybe some distinct “stable version folders” (not sure if that’s a thing).

    Anyway, certainly never thought to go that far, because having an app that’s “mostly independant” from a codebase perspective be in it’s own repo seemed beneficial. But yeah, it seems to me this is a matter of scale and at some point the cost of not having everything in a monorepo would become too great.

    Thanks!



  • Regarding tauri: One and a half years ago I looked into it as a potential alternative to using electron.

    Back then I had to decide against it for my use case, because when the goal is that it’s a cross platform app, then one has to make sure that whatever “webview version” is used on all target OS, they all have to support the features one needs re one’s own app codebase. Back then I needed some “offscreen canvas” feature that chromium supported (hence electron), but which webkit2gtk (used on Linux) didn’t at the time.

    https://tauri.app/v1/references/webview-versions/

    So it’s not always easy to give a clear recommendation on using tauri over electron. One really has to get somewhat clear on what kind of “webview requirements” the resp. app will have.

    But I do hope this will (or maybe already is) less of an issue in upcoming years (things are moving fast after all).



  • I went through setting up netdata for a sraging (in progression for a production) server not too long ago.

    The netdata docs were quite clear on that fact that the default configuration is a “showcase configuration”, not a “production ready configuration”!

    It’s really meant to show off all features to new users, who then can pick what they actually want. Great thing about disabling unimportant things is that one gets a lot more “history” for the same amount of storage need, cause there are simply less data points to track. Similar with adjusting the rate which it takes data points. For instance, going down from default 1s internal to 2s basically halfs the CPU requirement, even more so if one also disables the machine learning stuff.

    The one thing I have to admit though is that “optimizing netdata configs” really isn’t that quickly done. There’s just a lot of stuff it provides, lots of docs reading to be done until one roughly gets a feel for configuring it (i.e. knowing what all could be disabled and how much of a difference it actually makes). Of course, there’s always a potential need for optimizations later on when one sees the actual server load in prod.










  • You didn’t mention how big those volumes are and how frequently the data changes.

    Assuming it’s not that much data:

    • use tar to archive each volume first, while using proper options to preserve permissions and whatever else is important for your usecase
    • use restic to backup those archives
    • use a proper pruning strategy to not let your backups get too big:
      • I’m not that familiar with restic, but maybe you can backup those archives separately and apply a more aggressive pruning strategy just for them
      • simply might be needed, cause deduplication (AFAIK) might not be that great with backing up archives
      • but maybe if the volume data and the resulting archive doesn’t change that often, deduplication would be sufficient even with a not so aggressive pruning strategy