

Quality work will always need human craftsmanship
I’d wager that most revolutionary technologies are either those that expand human knowledge and understanding, and (to a lesser extent) those that increase replicability (like assembly lines)
Quality work will always need human craftsmanship
I’d wager that most revolutionary technologies are either those that expand human knowledge and understanding, and (to a lesser extent) those that increase replicability (like assembly lines)
Sometimes you forget to verify if your assumptions are true
I just have a spell checker enabled in vscode
So helpful for dynamic languages that can’t detect undeclared variables (looking at you JS)
I was reading Crafting Interpreters. After adding function calls and stack frames, i tested my implementation with the Fibonacci script at the end of the chapter
I spent about 2 hours debugging my call stack, and even tested the script in Python
Only to realize that Fib(3) is indeed 2
I’m not sure that’s their intended design. Old pull-tab cans actually had a ring for you to pull them off (similar to “easy open” soup cans of today)
I’d imagine that as the tab shrunk and changed from pull to a lever action, the “ring” was left as a vestigial design (as a form of skeuomorphism)
That’s the only reason i don’t think this is real
This is genius
If they’ve been blind since birth, then their brain might not be capable of processing this completely new stimulus fast enough
It’d be the equivalent of us being able to “see” magnetic flux using our nipples, for 30 seconds
If you do that, you lose formatting and comments every time you load the source from disk
As much as this hurts, yeet;
as an alias throw;
is hilarious
Sanity checks
Always, always check if your assumptions are true
Can we never joke about sensitive topics?
Isn’t humor like, our primary coping mechanism for dealing with dark topics?
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:
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
The composition is incredible. I wonder how this was taken, or if it’s one of those hyper realistic drawings
It doesn’t look AI generated
Edit: the reflection of the rope holding the swing doesn’t match. The reflection is quite straight and clean compared to the reflection of the wood supports. Odd
All distros are equivalent, as far as software is concerned. They all have access to the same open source software, and Flatpak; AppImage; and Snap can be used for extra portability.
Think of a distro like a pre-configured image of linux. You can always change the configuration later, if you desire. For example, the Desktop Environment. All you have to do is just install a different DE package (usually via command line)
The DE has a major impact on user experience. Use KDE plasma for a more windows-familiar experience, or Gnome for a more Mac-familiar experience. Or experiment with others
The Linux Experiment is a good resource
The SoC on the motherboard has a special EDL mode
This is kinda like the SoC’s pre-bootloader, which loads the bootloader and can be used to flash a new bootloader
EDL mode is locked behind vendor specific certs/keys, so it’s unaccessible to the device owner