These days, a lot of brainpower is spent on scamming people (case in point: Vivek Ramaswamy). One can really make quite a good living off of scamming people these days. If you could reduce the brainpower of that demographic, I think this would be good for everyone else.
A tried A Short Hike. Games like this make me anxious, actually, because they make me feel like I'm wasting time. But I'm not anxious in general. I guess, it depends on the person.
I could be wrong, but I think the easiest way to think of this is to consider how much extra memory programs took when compiled with 64 bit pointers over 32 bit ones. Suddenly every pointer takes double the memory. Which, sure, isn't a huge deal if you don't have a lot of memory allocations. But, if you do, it can add up.
Places it would likely impact more than you'd realize is in higher level language arrays where each item in the array is a pointer. For similar reasons, many datastructures can be coded such that each "pointer" is an array index instead.
So, extending all of that, what if you could make your pointers even smaller than 32 bits? If you know the addressable need for where the pointer is used, there is no reason you can't go smaller.
But the idea is still the same? You can make "smart pointers" that are attached to arenas or whatever you want to call them. On those, the addressable size of the pointer is confined to how large the arena is.
> To rephrase: are these just array indexes, then? I mean I presume it's something cleverer than just "let's bit-pack our indexes to save space".
The pointers can be dereferenced into an array index (when given the key), but they are smaller in size than a "bit-packed index", although I'm not quite sure what you mean by this. If you want to to represent an index into an array of size `n` there's no representation where all indexes take less than log(n). You can make some of them smaller, but then you make other bigger (like in UTF-8). The Tiny Pointers are all smaller than log(n) (and some of them would be exactly equal, despite representing different indexes!), but the only way of determining the actual index is to dereference it together with original key that was used to create it.
I mean, in a way, a pointer is just an array index into heap space? Such that, I think this is accurate? I'd drop the "just", though. They can be thought of that way, but the idea is how to keep the programmer from having to do that manually.
To rephrase, this is how to mechanically bit-pack indexes to save space. Doing it in a pointer means you are likely wanting to share these pointers with other parts of the code, so you also need to have them be self contained. Naive way would be for each pointer to be a tuple identifying arena and having its offset. But there is still a lot of effort that has to be done for that to work well. This paper looks at that effort and gives a pass at how worthwhile it is.
After reading more, it seems the novelty is in the two specific schemes that use these techniques to store data with high probability into tables of extremely high load factors with bounded pointer sizes, which are more complex than simple array indices due to having to resolve which fallback table is storing the key-value pair.
One scheme proves tiny pointer size bounds for fixed length tiny pointers. The other proves bounds for variable length pointers.
You can get that size of home for 2 million in Austin. The work to make it a LAN party home is not that expensive in comparison. The magic for him is that his dad is an architect. The home is very well designed and if you want that kind of design you’ll be paying more. Especially if you want the whole thing ready built.
> The magic for him is that his dad is an architect.
Yes. I could never have done any of this without that fact. When you hire an architect, especially for a high-end house, they are incentivized to make expensive design decisions in order to make the house more impressive for their portfolio, and of course the contractor is not going to stop them because they want the money. And if you're just a normal person not experienced in homebuilding, you will not be able to spot what they're doing. I'm sure I would have been taken advantage of if the architect wasn't a family member.
Mmm, AI integration for coding is table stakes for any development tool right now IMHO. Even for things as simple as "I have an idea about how I'd check to see if the time is between midnight and 4:30am, but I don't have the python datetime module locked into memory, how would you do it" is extremely useful.
sad. software quality deteriorating sharply because of all this. To learn an API also helps to keep it small and focused instead of having thousands of methods on it. All software will now go the way of Java.
Wouldn't that would imply that Windows support is necessary for software to be good? Often it's easier to write good software when you target a specific platform (rather than spending time troubleshooting problems that occur across lots of different environments), and do it well.
reply