Historically, assertions tended to be genuinely expensive. However, this doesn't have to be the case.
1) optimizing compilers are *remarkably* better these days: chandlerc.blog/posts/2024/1...
2) you can engineer your assertions to be cheap (and you should)
Historically, assertions tended to be genuinely expensive. However, this doesn't have to be the case.
1) optimizing compilers are *remarkably* better these days: chandlerc.blog/posts/2024/1...
2) you can engineer your assertions to be cheap (and you should)
a) It isn't an *invariant*, it is just an error, and it is propagated explicitly to the caller
or
b) It is an *invariant* and the state is corrupt if not valid. These, when checked, are terminating by default.
a) It isn't an *invariant*, it is just an error, and it is propagated explicitly to the caller
or
b) It is an *invariant* and the state is corrupt if not valid. These, when checked, are terminating by default.
All of Google's server C++ code uses terminating assertions by default.
There are debug-build-only terminating assertions, and non-terminating assertion tools available of course, but they are not the default.
All of Google's server C++ code uses terminating assertions by default.
There are debug-build-only terminating assertions, and non-terminating assertion tools available of course, but they are not the default.
a) It isn't an *invariant*, it is just an error, and it is propagated explicitly to the caller
or
b) It is an *invariant* and the state is corrupt if not valid. These, when checked, are terminating by default.
a) It isn't an *invariant*, it is just an error, and it is propagated explicitly to the caller
or
b) It is an *invariant* and the state is corrupt if not valid. These, when checked, are terminating by default.
All of Google's server C++ code uses terminating assertions by default.
There are debug-build-only terminating assertions, and non-terminating assertion tools available of course, but they are not the default.
All of Google's server C++ code uses terminating assertions by default.
There are debug-build-only terminating assertions, and non-terminating assertion tools available of course, but they are not the default.
From what I can find, pre-1930s the loan-to-value was often <50%, and often under 60% through 1950s. Having trouble finding good data though.
From what I can find, pre-1930s the loan-to-value was often <50%, and often under 60% through 1950s. Having trouble finding good data though.
My impression is that it mostly became uncommon when mortgages started commonly being for ~most of the value of the house and so you couldn't realistically take out a significant "second" mortgage. Guessing the term was more common pre-1980
My impression is that it mostly became uncommon when mortgages started commonly being for ~most of the value of the house and so you couldn't realistically take out a significant "second" mortgage. Guessing the term was more common pre-1980
So here, take your monkey jpeg.
So here, take your monkey jpeg.
My question is specifically around coding tools.
Regarding security - yes, I do understand. There are reasonable ways of running fully untrusted code, etc.
My question is specifically around coding tools.
Regarding security - yes, I do understand. There are reasonable ways of running fully untrusted code, etc.
I understand that you may feel these are strictly inferior to purpose-built classical tools, but there remains lots of interest in these approaches. My questions are about how to approach that interest.
I understand that you may feel these are strictly inferior to purpose-built classical tools, but there remains lots of interest in these approaches. My questions are about how to approach that interest.
Other times, I think the best way to engage with users about how they are misusing tools is to integrate the tools and use that to drive a deeper discussion instead.
TBH, I'm not 100% sure where AI coding tools falls here yet, and that's the point of my questions.
Other times, I think the best way to engage with users about how they are misusing tools is to integrate the tools and use that to drive a deeper discussion instead.
TBH, I'm not 100% sure where AI coding tools falls here yet, and that's the point of my questions.