log☇︎
53900+ entries in 0.359s
asciilifeform: recently there was even a d00d who had entire model f made this way, in a run of 1000 or so
asciilifeform: there used to be a club where various folx pooled dough and bought.
mircea_popescu: superficially it seems like omfg lotta money ; but not so bad. people can afford to make eg icecube trays that retail for 3 bux ie cost a quarter each. how many of those sell ? 10k if you're lucky.
mircea_popescu: asciilifeform because "stainless steel kbd" is an entertainingly stupid notion ; and what's more it's pecularly stupid in the way your stupid works, i can see it relate to the "fuck you guise, ima live on a boat" and so on. spherical cow sorta approach.
asciilifeform: i dun actually make keyboards. but did once say 'i'd like a stainless steel kbd' and for some reason the reaction is always 'no have THIS instead'
mircea_popescu: and also it's not a matter of " THIS crackpottery of mine - you lot find interesting, but the stubborn boojum". it's a matter of you being more hysterically terrible ad kbd design than at p design.
asciilifeform: but yes i thought about wooden keys. probably would want a custom milling rig to make'em ( something like a lens maker's lathe )
asciilifeform: ibm made a magnetically-tensioned kbd at one point
asciilifeform: yes, that's what a keyboard is
ben_vulpes: asciilifeform: meniscus also with a mill.
ben_vulpes: a mill
mircea_popescu: a special kind of zamak.
asciilifeform: ugh ever wore a nickel watchband ?
asciilifeform: well thread was re a hypothetical nothing-spared kbd.
mircea_popescu: asciilifeform silver dun tarnish lol, there's such a thing as proper silver. and it has low melting point and easy to work and it doesn't grow fungi.
asciilifeform: a*b mod m MUST WORK FOR ALL INTEGERS .
asciilifeform: reason is that it demands special forms and therefor is not a general-purpose modexp
asciilifeform: re 'mechanism', also can restate : if something cannot be expressed as a boolean circuit, it is not constantspacetimeizable.
a111: Logged on 2017-09-12 23:11 mircea_popescu: 2. a fine example of how "i work for the web man" rots the brain, is that in an implementation of the above discussed mod-distributiver, the "common" consensus impulse would be to add a test, make sure the list elements respect the condition of <modulus. this however is very much the wrong thing ; and it is a tmsr-graduate level question to explain why and wherefore.
asciilifeform: http://btcbase.org/log/2017-09-12#1713184 << in ffaworld, a < or > or == comparison is not only a subtraction (O(N)) but another O(N) test for nullity (xor all the words together) ☝︎☟︎
a111: Logged on 2017-08-10 19:45 asciilifeform: forn00bz: an, e.g., rsa modexp, in ffa, must be representable by a long roll of paper, on it are ops for ordinary 4function calculator, with very patient slave. and roll ONLY ROLLS FORWARD and has finite # of instructions on it, known in advance when you decide the ffa width.
a111: Logged on 2017-08-10 03:23 asciilifeform: what is needed is a wholly algebraic process. like my mult.
a111: Logged on 2017-09-12 23:12 mircea_popescu: and finally 3. the item there described is not exactly a function. it rather something i'd call a mechanism, a discrete item that does a fully defined thing. as we're looking more and more through ada eyes and constant time things and so on, a study of these mechanisms as an distinct category will prolly be useful. somewhere between conway's cells and commandline utils, they are.
mircea_popescu: and finally 3. the item there described is not exactly a function. it rather something i'd call a mechanism, a discrete item that does a fully defined thing. as we're looking more and more through ada eyes and constant time things and so on, a study of these mechanisms as an distinct category will prolly be useful. somewhere between conway's cells and commandline utils, they are. ☟︎
mircea_popescu: 2. a fine example of how "i work for the web man" rots the brain, is that in an implementation of the above discussed mod-distributiver, the "common" consensus impulse would be to add a test, make sure the list elements respect the condition of <modulus. this however is very much the wrong thing ; and it is a tmsr-graduate level question to explain why and wherefore. ☟︎
mircea_popescu: 1. if you actually want metal kbd, your choice of steel is probably ill advised. i'd try silver instead. heuristicallyt there's a reason gunsmiths and silversmiths were ~the same people i nthe early modern period ; moreover silver has better properties in the range sough. ☟︎
mircea_popescu: anyway, three points since i got a blowjob and apparently this inspires me.
phf: damn, it's a long log
phf: http://btcbase.org/log/2017-09-12#1712362 << i actually use this one pretty frequently when i type for identifiers, abbreviations and section headers in notes. really any time i need to type more than 2 capitalized letters in a row.. ☝︎
asciilifeform: it requires a constant-time gcd, however, to be constant-time. ( and has a problem same as above in that it takes much MORE time than naive algo if you don't reuse modulus forever )
asciilifeform: incidentally there are other algos where you pre-bake a thing for a given modulus and save some cycles. montgomery's, for example.
mircea_popescu: asciilifeform im pretty sure i read the whole knuth as a teen, so it's likely just memory at work.
asciilifeform: and for every new modulus, you gotta cook up a list
mircea_popescu: say a number.
mircea_popescu: so you have a very simple case.
asciilifeform: and you're stuck adding a+b... again
asciilifeform: then a mod m == a, b mod m == b, etc
asciilifeform: you do if you want to get anything out of having a table
asciilifeform: it is bad for being indexed by a secret
mircea_popescu: it's not automatically bad just for being a list ; you don't have to pare it down.
mircea_popescu: but the important point re that, is that whenever they use a reduced matrix we can STILL use the ufll matrix!
mircea_popescu: this may or may not be cheaper ; but in general you would build a list of the pre-calculated mods of all the powers of 2 up to your bitness and save that to save on work.
mircea_popescu: it is also extensible in the sense that if you wish to compute the mod of a 512 bit number, you can cut it up into as many powers of two as there are 1's, feed it into this, and get a modulus.
asciilifeform: i'ma need to find a proof that this holds for all integers. ☟︎
mircea_popescu: you feed into my above function the list 6, 9, 15. it adds them : 30. it then writes down 30 -17 ie 13. it then writes down 13 + 17 = 30. it has peroduced a list as long as the original (3 elements), among which the SECOND is the modulus of 1433293 +7926803 +9266137
asciilifeform: ( i thought we were doing a+b )
asciilifeform: a=5, b=7, m=11
mircea_popescu: let's take fucking numerical examples already. a = 349087340 ; b = 1209843095 ; c = 753059056. mod = 17. << final!
mircea_popescu: how did i mash a random number mod 7 already.
mircea_popescu: you could do a+b+c = 2311989491 mod 7 = 0.
mircea_popescu: let's take fucking numerical examples already. a = 349087340 ; b = 1209843095 ; c = 753059056. mod = 7.
mircea_popescu: let's take fucking numerical examples already. a = 349087340 ; b = 1209843095 ; c = 753059056. mod = 5.
asciilifeform: if you allow a+b+c addition to take place, you have exactly same proggy i have now.
asciilifeform: karatsuba terms a+b+c ( k. squaring, for simplicity. mult. has four of'em ). we want a+b+c mod m.
mircea_popescu: and what it spits out is the (a+b+c) mod x.
mircea_popescu: not the a itself.
mircea_popescu: what you feed to this algo is the a mod x
asciilifeform: so as not to feed a massive turd into an O(N^3) division algo
mircea_popescu: alrigthy, so. you take a list of numbers. you add these numbers. you write the result down. you compare this result with the modulus. if the result is smaller than the modulus, you add the modulus to it and write it underneath ; if larger, you substract the modulus and write it underneath. you repeat this step until you have a list of added/substracted moduli to the result AS LONG as the original list of elements. in it, you
asciilifeform: ( and what part of (a+b) mod m == (a mod m) + (b mod m) is breakable with infinitely many a,b,m values, is hard ? try it yourself )
mircea_popescu: alright. then let me tell you how to do it, and if you fucking say you did it in july ima buy a plane ticket and hang you by the tallest petard.
mircea_popescu: so, the paste is a division.
asciilifeform: and if mircea_popescu writes one -- i dun care if in fortran, cobol, malbolge, whichever, so long as it's something resembling a proggy -- i promise to read.
mircea_popescu: go have a glass of water, this is unstable.
asciilifeform: and yes it'd be 133337 if it worked, we would have a direct modular equivalent of karatsuba
asciilifeform: 1) mircea_popescu describes algo for mod. 2) turns out exactly knuths's, that is in existing ffa 3) describes 'do it to each term of a+b+c in karatsuba' 4) this dun work, if it worked we would be bragging about the new 133337 recursive modular mult algo we've got
mircea_popescu: and in today's reason #5409834 why tattoos are a bad idea : http://68.media.tumblr.com/c853da0a74a94227229869f0e9c8f35d/tumblr_nv9nfgHcTJ1stfekto1_1280.jpg
asciilifeform: i think we missed a step in the thread
asciilifeform: ( and worth keeping in mind that in ffaworld adding two B-bit integers does NOT give a B-bit integer, it gives a B+W bit one. where W is our word width. )
asciilifeform: well we are talking about a O(NlogN) rsa vs a O(N^5) one
mircea_popescu: this approach of "i have a girlfriend and i am blind to all else" doesn't work with girlfriends, or anything else.
mircea_popescu: repeat 2 until you have populated a list of equal length, and return the correct element from it.
mircea_popescu: and this is potentially recursive, in that if you have a 500 bit number with 300 ones in it, you do the mod for 500 terms which are all a power of 2, throw 200 away, keep the other 300 and add them. ☟︎
asciilifeform: this is still a restatement of the thing i asked for tho. i do not know of a way to distribute mod.
mircea_popescu: that is not my concern! if there IS a mod, then yo ucan apply it to the terms rather than add them first and apply to result, is all i'm saying.
mircea_popescu: you understand, a mod x + b mod x + c mod x may be > x, but never by more than op count * x.
mircea_popescu: you write by hand a function which takes a list with a promise none of the items on it exceed a mod, and returns the mod of the sum of the sum of the elements, in constant time.
mircea_popescu: i am talking about how mod is distributive to addition "at a small cost".
mircea_popescu: asciilifeform you understand you need AT MOST a single pass of knuth ? because it may exceed the mod but never by more than 3x ?
mircea_popescu: gimme an a b c ill try it right here
asciilifeform: take trivial case, a=b=c=1 and n=2
mircea_popescu: it is distributive in this sense at a minimum cost (tm).
asciilifeform: xy = (a+b+c), but xy mod n != (a mod n)+(b mod n)+(c mod n)
asciilifeform: ( nao if only modulus were a distributive operation ! then could take mod for each of the 3 addition arguments inside karatsuba, and we'd be golden )
mircea_popescu: (in a sense, key update with deedbot is like bitcoin spending!)
mircea_popescu: on a new name.
rothbart: can I just register a new public key with deedbot, without revoking the old one?
mircea_popescu: asciilifeform if you maintain a list of the mod and it squares
mircea_popescu: the exact same will happen again. "oh, you had a consensus ? lol."
mircea_popescu: just mine a block with it spent, and that's that.
mircea_popescu: let's drop the math for a moment and delve. at time t0, bitcoin works. at time t1, some wreckers under "public pressure" as discussed well in http://trilema.com/2013/digging-through-archives-yields-gold/ attempt to attack this bitcoin that works, by producing an alt-bitcoin, that does not work. the specific way in which the alt-bitcoin thatr does not work "works" is by deeding (exactly like deedbot) some strings into the bitc
rothbart: as in, the attacker would be doing a chain rewrite in order to keep the segwit outputs on his fork?
mircea_popescu: rothbart if you have it in a portable data format, can just feed it into trb
asciilifeform: the approach i've been (futile, so far) taking is, to find a way to interleave modularization into karatsuba
asciilifeform: and oh did i mention 3) idiot specialforms (e.g. barrett's) , because if mother dropped you as a child specialform constraints on moduli seem like ok idea
mircea_popescu: "what do you mean this problem is hard, i have a half baked item in my head i pompously call abstraction in which it is EASY!!!"
asciilifeform: and it is not only O(N^3), but when you modularly exponentiate it actually gets done B times, and not to B-sized inputs, but 2B ( because we have a multiply and then also a square, in each step of the B-step modular exponentiation bitwise )
mircea_popescu: this is a great fucking problem though.
mircea_popescu: http://btcbase.org/log/2017-09-12#1712588 << i freely admit so well formalized this is a tantalizing problem. how slow is the obvious "multiply x and y, substract modulus from result until result smaller than modulus" ? ☝︎
trinque waiting on a turdnode as well