log☇︎
292700+ entries in 0.189s
trinque tries to imagine what a hammer would look like if it were composed of orthogonal categories of "lets make everything to do with hardness" and "everything to do with smashing" ☟︎
phf: hense various monsters like "named readtables" and various attempts to minimize package name clashing
phf: in fact lisp is pretty unfriendly to the whole idea of "fire and forget" code reuse
trinque: I should name a specific symbol import and have the code for that import and all deps slurped into the very spot I named it
phf: which is traditionally described in computing with same architecture terms, i.e. patterns
trinque: even though yeah, it came from the set of all known Xs and Ys
trinque: why isn't my program only the set of code it actually uses
trinque: why then does it hvae the same import system as C++ roughly
phf: well, mp already pointed at this with his roman arch example ☟︎
trinque: funny thing here, isn't lisp supposed to be able to manipulate its own damned code
trinque: on the other you have specific orders given to a unit
trinque: on one side you have the set of all possible tactics to employ in a given domain
trinque: two categories come to mind; lets say in the context of planning a military operation
phf: well, as far as i understand it was us three arguing with asciilifeform from different angles
trinque: who is arguing with that?
phf: a genesis that no one can read through and make sense of it is meaningless
trinque: and your signature upon the mud is meaningless
trinque: using openssl as a symbol, to the degree that your program relies on one, you cannot be said to have written any particular program at all ☟︎
trinque: there's a core philosophical question of "what is a program" which extends from the observation
trinque: except that he does have to care; this concept is broken
phf: sure, and the next step might be to trim down openssl as much as possible (which might be not much at all given limited resources) and rebase it into genesis
trinque: I have been arguing that the #include concept (styled (require ...) or whatever you like) gives a person a place past which he may "not have to care"
trinque: that "apartness" you smell on tinyscheme is throughout the thing, not just there
phf: but i haven't seen those problems yet in the bitcoin codebase, the problem that i did see is a certain deliberate apartness of tinyscheme related code, that subtly violate my assumptions in a nagging way that i described above. ☟︎
phf: i'm not sure i understand where compromise is. i'm comfortable working with big ball of mud. i see a vpatch as a transition of state of mud to a new state of mud and vpatch is an exhaustive description of what that state transition means. it's signed by asciilifeform which is all the pedigree i need. vpatch itself can come with out of band comment "might be buggy" or "ready for war deployment". there are known problems with that approach that manifest at scale (like for example multiple slightly conflicting version of "utilities" or "math functions" that get copied back and forth, finding bug in one means that the other might remain unpatched, etc.)
trinque: at least in that case you know what you've done!
trinque: I'd expect it avoids the trap
trinque: and then maybe you're BingoBoingo's druggie, or you're in a pool of blood and piss
trinque: one can always say "not as much as I've commited thus far"
trinque: phf: the problem there is knowing how much compromise leads to death
phf: i think that a lot of these conversations come to a standstill because they deal with infinities, rather the shaping into a reasonable concrete. it seems proper that slapping new code onto bitcoin should come in a form of wot signed balls of mud, that don't particularly care about preserving all information and pedigrees and such. "i wrote this new math function and it uses this mp code that i lifted elsewhere but shaped enough that only relevant bits remain and for all practical purposes all you see in this patch is all that matters"
trinque: every pit of ignorance on earth sits behind some tidy word beyond which "it's someone else's problem" ☟︎
trinque: and now we're back to your book
trinque: for all I know boost does this very particular thing with memory allocation that obviates some race condition the whole concept has which prevented it from collapsing immediately
mod6: Gentlemen, I must bid you Good Evening. I'll pick this back up with you on the 'morrow. :]
asciilifeform: because this act would require fitting, e.g., 'boost', in head.
asciilifeform: trinque: it is quite correct to say that no one will ever fully grasp what the original bitcoin actually ~was~
asciilifeform: you can't do the reverse !
trinque: that what we have is all we have is a tragedy and nothing other
trinque: I would understand more of what bitcoin *is* from an implementation with no dependencies than from what we have
asciilifeform: instead of cluttering up the aether with cut'n'pastola.
asciilifeform: for future trinque .
asciilifeform: aaaaaaaand THIS is why i want to preserve ALL possible quanta of provenance.
trinque: because of the very thing we're discussing.
trinque: but I have nfi what the fucking thing is, to this day
asciilifeform: trinque: it was how we genesis'd trb, recall.
asciilifeform: trinque: you evaluate it using SAME algo as you use for 'did asciilifeform write his patches or were they given to him by a colonel at ftmeade to pass to chumps'
trinque: how am I to evaluate the question of whether I care about that?
asciilifeform: and get a wild one from the net ?
trinque: what did that tell anyone
asciilifeform: incidentally, at one point i signed 'this is the tarball of openssl circa 20xx from my hdd, sha512==H'
mircea_popescu: what's one to do. so it burnssss.
mircea_popescu: anyway, what started this conversation is that the ratcheting ratcher burnssss.
asciilifeform: in the tinyscheme sense.
asciilifeform: hell, we have a ~literal~ openssl in there.
phf: fwiw, we don't have examples in code base of 1000 re-readings but we already have an example of openssl, which is where this conversation started
mircea_popescu: or for that matter, anything you don't feel like reading.
trinque: so you're looking at it at offset whatever, what does this change?
trinque: what requires you to read the whole scroll?
asciilifeform: i ain't reading macbeth twice in one evening unless i ~want~ to.
asciilifeform: realize, if i strongly suspect that strings s1 and s2 are identical, i'ma diff'em.
mircea_popescu: it's not been wasted, the time you used reading, it's not been wasted.
mircea_popescu: asciilifeform you're trying to save copulation time, seriously now.
asciilifeform: (with sitting in queues, pointless travels to stuffy offices, etc)
asciilifeform: in linked piece, mircea_popescu described how he would piss right back on people who intend to waste his time
mircea_popescu: internet of things. pshaw.
asciilifeform: but doing same to ~adult man~ is a no go.
mircea_popescu: all the "effort saving" kitchen appliances never made a man yet.
asciilifeform: mircea_popescu: yes! precisely that one.
asciilifeform: phf: i quite agree that rereading can be beneficial. but NOT forced 'paint the snow heaps white' ru army style.
phf: reading thing you wrote as applied to a new problem might potentially reveal issues. "oh this code uses strcpy with null pointer, strcpy is included from `my` code, so i'm going to make a bunch of assumptions that break down in this case"
asciilifeform: and which projects he would take on in his consulting days
asciilifeform: it was a 'i will NOT read a thing by hand to discover that it is actually equal to yesterday's thing'
mircea_popescu: iirc when i wanted to sanitize indents you quashed it mostly on the grounds of exactly this, "i want my diff to still work". well now ?
asciilifeform: by not reading THING I WROTE n+1th time
mircea_popescu: incidentally, this may be the most idiotic cockroach implanted by usg in programmer heads, "save time by not reading"
asciilifeform: if ~i chose to~ - then no, not waste.
asciilifeform: reading SAME THING 1,000,001 times because SOMEONE ELSE FORCED ME ~is~
asciilifeform: because if i cannot determine mechanically 'this is THE thing that ~i~ wrote' vs 'this is SOME OTHER thing that i must now read with magnifying glass' this wastes potentially weeks, months, years (depending on mass of turd) of my time.
mircea_popescu: i am of the same mind.
trinque: I will never sign off on a crypto util lib that has umpteen million functions
trinque: the problem is poorly formed; I would eventually sign off on a function that did RSA
mircea_popescu: asciilifeform why would you care to answer that q btw ?
asciilifeform: my VERY limited time.
asciilifeform: if i have to diff (or, satan forbid, VISUALLY INSPECT), e.g., mod6's ffz.adb to see what parts he changed from mine, and every single motherfucking time i find that it is nothing at all, then my time is wasted.
phf: i prefer to just loosen the requirements a bit. a failure in a vpatch doesn't need to result in public disgrace, shaming or execution. that might be one of reasons why work came to utter stand still, nobody wants to "sign off" on this or that like it's going to end in the style of diana_coman's story
trinque: point being that problem would be trivial if we weren't introducing human-side optimizations like #include and general libraries of 100s of functions out of which you pick a couple
mircea_popescu: no, best is to trust and verify. pretend you did take it off hitler.
trinque: I'm reminded of the call-graph thread
asciilifeform: ^ which incidentally is still a thing that must be done, either this way or some other way, because this is indeed a dire problem
asciilifeform: i am NOT and will NOT be willing to sign off on, e.g., tinyscheme, or even trb, with same level of assurance as for code that i and i alone had written.
asciilifeform: ideally you will specify a MINIMAL set of differences, via patching. supposing that the originating item was by someone in your wot, vs taken from hitler on battlefield
a111: Logged on 2016-06-14 04:29 mircea_popescu: the odds of two projects wanting the same exact verbatim pile of lib-code are ~as good as for a hash collision.
trinque: my actual possible code paths in say trb should be reflected in the code
mircea_popescu: asciilifeform i been sayuing this for an hour now. YOU DONT FUCKING IMPORT THE WHOLE LIB VERBATIM. you take what you need, and adapt it to your project.
mircea_popescu: but yes, laterally, this also takes out with red irons any concept of "copyright" in software
trinque: the thing on trial here is I just wanted to aes-128 or whatever; I did not want to openssl
mircea_popescu: there is no "origin", other than, "who signed it".
asciilifeform: and leave the reader to gnaw on it with diff tools if he wants to get to the truth
mircea_popescu: the odds of two projects wanting the same exact verbatim pile of lib-code are ~as good as for a hash collision. ☟︎