• 1 Post
  • 187 Comments
Joined 1 year ago
cake
Cake day: June 30th, 2023

help-circle

  • HDD, SSD and NVMe all have different versions. Later generations are normally 2x faster than previous version. Comparable generations are normally an 8x speedup. (Later generations are in parentheses).

    HDD to SSD is like 80(160)->300(600).
    SSD to NVMe is 300(600)->2400(4800, 14000).

    So, it’s likely a similar upgrade, unless you did HDD-g1 to SSD-g2 to NVMe-g1 (using G1/G2 to simplify).
    It’s also likely possible that your computer is running so fast that a doubling or quadrupling in speed is a diminishing return as you don’t notice the difference.


  • Eventually you will get used to it.
    You have 3 options.

    1. normalise to OSX shortcuts (and concile your Linux shortcuts to those). You are more likely to encounter an osx machine “in the wild”, and if you have to get a new Mac then everything is instantly comfortable. Linux is also easier to customise.

    2. normalise to your Linux shortcuts. Figure out how to script osx to adopt those shortcuts (so you can quickly adopt a new work machine), and accept that you won’t always be able to use those shortcuts (like when using a loaner or helping someone).

    3. accept the few years of confusing Osx Vs Linux shortcuts, and learn both.

    Option 3 is the most versatile. Takes ages, and you will still make mistakes.
    Option 2 is the least versatile, but is the fastest to adopt.
    Option 1 is fairly versatile, but probably has the longest adoption/pain period.

    If OSX is in your future, the it’s option 1.
    Option 3 is probably the best.
    If you are never going to interact with any computer/server other than your own & other Linux machines, then option 2. Just make sure that every preference/shortcut you change is scriptable or at least documented and that the process is stored somewhere safe




  • If you want remote access to your home services behind a cgnat, the best way is with a VPS. This gives you a static public IP that your services connect to, and that you can connect to when out and about.

    If you don’t want the traffic decrypted on the VPS, then tunnel the VPN back to your homelab.
    As the VPN already is encrypted, there is no point in re-encrypting it between the vps and homelab.

    Rathole https://github.com/rapiz1/rathole is one of the easiest I have found for this.
    Or you can do things with ssh tunnels.

    For VPN, wireguard is very good


  • Like I said, impressive work.
    Converting science to shaders is an art.

    I guess your coding standards follows scientific standards.
    And I guess it depends on your audience.

    I guess the perspective is that science/maths formulae are meant to be manipulated. So writing out descriptive names is only done at the most basic levels of understanding. Most of the workings are done on paper/boards, or manually. Extra letters are not efficient.
    Whereas programming is meant to be understood and adapted. So self-describing code is key! Most workings are done within an IDE with autocomplete. Extra letters don’t matter.

    If you are targeting the science community with this, a paragraph about adapting science to programming will be important.
    Scientists will find your article and go “well yeh, that’s K2”. But explaining why these aren’t named as such will hopefully help them to produce useful code in the future.

    The fun of code that spans disciplines!

    Edit;
    Om a side note, I am terrible at coding standards when I’m working with a new paradigm.
    First is “make it work”, after which it’s pretty much done.
    Never mind consistent naming conventions and all that.
    The fact you wrote up an article on it is amazing!
    Good work!


  • Interesting.
    I love creative applications of shaders. They are very powerful.

    In my opinion only, but willing to discuss.
    And I’ll preface this by saying if I tried to publish a scientific paper and my formulas used a bunch of made up symbols that are not standardised, I imagine it would get a lot of corrections on peer review.

    So, from a programming perspective, don’t use abbreviations.
    Basically working on naming.

    I can read that TAU is the diffusion rate due to a comment. Then I dig further into the code as I am trying to figure something out and I encounter tau. Now I have to remember that tau is explained by a comment, instead of the name of the variable. Why not call it diffusionRate then have a comment indicating this is TAU.
    A science person will be able to find the comment indicating where it is initialised and be able to adjust it without having to know programming. A programming person will be able to understand what it does without having to know science things.
    Programming is essentially writing code to be read.
    It’s written once and read many times.

    Similar with the K variables.
    K is reactionRate.
    K1 is reactionKillRate.
    K2 is reactionFeedRate.
    Scientists know what these are. But I would only expect to see variables like this in some bizarre nested loop, and I would consider it a code smell.

    The inboundFlow “line” has a lot going on with little explanation (except in comments). The calculation is already happening and going into memory. Why not name that memory with variables?
    Things like adjacentFlow and diagonalFlow to essentially name those respective lines.
    Could even have adjacentFlowWeight and diagonalFlowWeight for some of those “magic numbers”.
    Comments shouldn’t explain what is happening, but why it’s happening.
    The code already explains what is happening.
    So a comment indicating what the overall formula is, how that relates to the used variables, then the variables essentially explain what each part of it is.
    If a line is getting too complicated to be easily understood, then parting it out into further variables (or even function call, tho not applicable here) will help.
    I would put in an editted example, however I’m on mobile and I know I will mess up the formatting.

    A final style note, however I’m not certain on this.
    I presume 1. and 1.0 are identical representing the float value of 1.0?
    In which case, standardise to 1.0
    There are instances of 2.0 and 2.
    While both are functionally identical, something like (1.0, 1.0, 1.0) is going to be easier to spot that these are floats, as well as spotting typos/commas - when compared to (1., 1., 1.,).
    IMO, at least




  • At the homelab scale, proxmox is great.
    Create a VM, install docker and use docker compose for various services.
    Create additional VMs when you feel the need. You might never feel the need, and that’s fine. Or you might want a VM per service for isolation purposes.
    Have proxmox take regular snapshots of the VMs.
    Every now and then, copy those backups onto an external USB harddrive.
    Take snapshots before, during and after tinkering so you have checkpoints to restore to. Copy the latest snapshot onto an external USB drive once you are happy with the tinkering.

    Create a private git repository (on GitHub or whatever), and use it to store your docker-compose files, related config files, and little readmes describing how to get that compose file to work.

    Proxmox solves a lot of headaches. Docker solves a lot of headaches. Both are widely used, so plenty of examples and documentation about them.

    That’s all you really need to do.
    At some point, you will run into an issue or limitation. Then you have to solve for that problem, update your VMs, compose files, config files, readmes and git repo.
    Until you hit those limitations, what’s the point in over engineering it? It’s just going to over complicate things. I’m guilty of this.

    Automating any of the above will become apparent when tinkering stops being fun.

    The best thing to do to learn all these services is to comb the documentation, read GitHub issues, browse the source a bit.


  • Bitwarden is cheap enough, and I trust them as a company enough that I have no interest in self hosting vaultwarden.

    However, all these hoops you have had to jump through are excellent learning experiences that are a benefit to apply to more of your self hosted setup.

    Reverse proxies are the backbone of hosting and services these days.
    Learning how to inspect docker containers, source code, config files and documentation to find where critical files are stored is extremely useful.
    Learning how to set up more useful/granular backups beyond a basic VM snapshot in proxmox can be applied to any install anywhere.

    The most annoying thing about a lot of these is that tutorials are “minimal viable setup” sorta things.
    Like “now you have it setup, make sure you tune it for production” and it just ends.
    And finding other tutorials that talk about the next step, to get things production ready, often reference out dated versions, or have different core setups so doesn’t quite apply.

    I understand your frustrations.



  • I’m late 30s.
    I can’t remember <13. So, at least the last 30+ years I’ve had 4 pairs of sunnies. Maybe 5 pairs.
    I’ve still got 2 of those pairs.
    I’m tempted to get a fancy pair that look good instead of just sunnies that look good enough (ie, more than $100). I just don’t wear them enough… Maybe a couple weeks a year?
    What’s the point in buying good sunglasses, and why would I lose a pair?
    I’ve had the same wallet for 15 years, I’ve been locked out once, and I’ve lost my phone about 3 times (all of which I’ve got my phone back).

    I’m recovering from about 10 years of undiagnosed depression. Recently (like a year) it has affected my short term memory, to the point I thought I had ADHD or something else. Effecting my work, my ability to live day-to-day, my socialmlife.
    I now realise, while ADHD might be a factor, undiagnosed depression has devastated who I am VS who I think I am and who I want to be.

    Are there other explanations for your forgetfulness?
    Is it age related? Anything else you find you are forgetting?






  • The first round of tools for any hobby or DIY project.
    If you don’t know what you want from a screwdriver, snips, circular saw etc. then there is no point in buying the super primo bells & whistles expensive stuff.
    Once you’ve used a tool and learned what you don’t like about it, or what you actually use it for, or how often you actually use it… Then you can make the informed decision to just buy another cheap one, or splash out on something that’s actually fun to use.

    Buy the 2nd last tool you will ever need.

    There are rare occasions where “buy once cry once” apply. But it’s rare


  • If your windows computer makes an outbound connection to a server that is actively exploiting this, then yes: you will suffer.

    But having a windows computer that is chilling behind a network firewall that is only forwarding established ipv6 traffic (like 99.9999% of default routers/firewalls), then you are extremely extremely ultra unlucky to be hit by this (or, you are such a high value target that it’s likely government level exploits). Or, you are an idiot visiting dogdy websites or running dodgy software.

    Once a device on a local network has been successfully exploited for the RCE to actually gain useful code execution, then yes: the rest of your network is likely compromised.
    Classic security in layers. Isolatation/layering of risky devices (that’s why my homelab is on a different vlan than my home network).
    And even if you don’t realise your windows desktop has been exploited (I really doubt that this is a clean exploit, you would probably notice a few BSOD before they figure out how to backdoor), it then has to actually exploit your servers.
    Even if they turn your desktop into a botnet node, that will very quickly be cleaned out by windows defender.
    And I doubt that any attacker will have time to actually turn this into a useful and widespread exploit, except in targeting high value targets (which none of us here are. Any nation state equivalent of the US DoD isn’t lurking on Lemmy).

    It comes back to: why are you running windows as a server?

    ETA:
    The possibility that high value targets are exposing windows servers on IPv6 via public addresses is what makes this CVE so high.
    Sensible people and sensible companies will be using Linux.
    Sensible people and sensible companies will be very closely monitoring what’s going on with windows servers exposed by ipv6.
    This isn’t an “ipv6 exploit”. This is a windows exploit. Of which there have been MANY!