• 0 Posts
  • 113 Comments
Joined 1 year ago
cake
Cake day: December 31st, 2023

help-circle










  • Lightfire228@pawb.socialtomemes@lemmy.worldIt's getting cold
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    4 months ago

    See, I like to actually enjoy myself sometimes, instead of just hating the world

    And part of that enjoyment is good coffee. Fresh, locally roasted coffee, that I grind fresh each morning. I either take it black, or with a splash of milk, depending on my mood

    Drip brewers are perfectly fine, so long as you don’t use the hot plate. But the biggest impact on coffee flavor is the freshness of both the roast and the grind





  • Because it’s all an impulse decision

    “New Year’s Resolutions” are the exact opposite of setting good goals

    Good goals:

    • need to be definable
      • “I will start restricting calories and target a 1lb per week loss”
      • not “get in shape”
    • need to be actionable
      • “I will start making plans right now, and implementing them tonight”
      • not “I will wait till a specific time of the year”
    • need to be sustainable
      • “I will adjust my strategy to work around my daily habits and otherwise be flexible”
      • not “NO MORE SWEETS”


  • Coffee brewers that have a hot plate under the carafe will burn and ruin coffee. The best method of keeping coffee fresh is to keep it in a sealed container (like a double walled carafe with a lid)

    Microwaving coffee is actually a pretty decent way to re-heat it, but the taste will depend on how fresh it was kept prior


  • I’m more talking about theory than practical.

    I’ve not developed anything in C/C++, so I don’t know practical uses for a double pointer, aside from multidimensional arrays, or arrays of pointers

    My point was that, conceptually, pointers to pointers is how most complex data structures work. Even if the C representation of said code doesn’t have a int** somewhere


  • The distinction is meaningless in the land of Opcode’s and memory addresses

    For example, a struct is just an imaginary “overlay” on top of a contiguous section of memory

    Say you have a struct

    struct Thing {
      int a;
      int b;
      Thing* child;
    }
    
    Thing foo {}
    

    You could easily get a reference to foo->child->b by doing pointer arithmetic

    *((*((*foo) + size(int)*2)) +size(int))
    

    (I’ve not used C much so I’ve probably got the syntax wrong)


  • Mostly because at the lowest level of computing (machine code and CPU instructions), pointers are the only method (that I know of) of any kind of indirection.

    At the lowest level, there are 2 types of references:

    • CPU registers
    • memory addresses (pointers)

    Every higher level language feature for memory management (references, objects, safe pointers, garbage collection, etc) is just an abstraction over raw pointers

    Pointers themselves are really just abstractions over raw integers, whose sole purpose is to index into RAM

    With that in mind, pointers to pointers are a natural consequence of any kind of nested object hierarchy (linked lists, trees, objects with references to other objects, etc)


    The only other kind of indirection would be self-modifying machine code (like a Wheeler Jump). But the computing world at large has nixed that idea for a multitude of reasons