BingoBoingo: <mircea_popescu> whereas gasoline generator only really works well as a 50kw+ item << Biggest problem with gas for backup genset is doesn't store well
BingoBoingo: Unless you go full synthetic on the fuel and they why the fuck not drill for natural gas then
BingoBoingo: <asciilifeform> mircea_popescu: afaik there is no konsoomer nife. there are only industrial. << In UK "consumer" sets are being marketed for solar crowd
ben_vulpes: sina: got any better ideas for comparing program runtimes than perf?
sina: ben_vulpes: dtrace?
sina: I heard good things about systemtap but never used it myself
sina: ben_vulpes: what is wrong with perf for your usecase?
ben_vulpes: sina: i wouldn't know, is why i'm asking
BingoBoingo: Isn't dtrace that Sun Microsystems thing that came with Solaris 10?
sina: BingoBoingo: yah
sina: it's pretty awesome
sina: you can run it on fbsd
sina: systemtap is basically "dtrace for linux" I guess
sina: but again, I haven't used that one
sina: mircea_popescu: around? any time to play with gossipthing?
sina: ben_vulpes: can we roll back and start at the usecase?
ben_vulpes: why to compare mpfhfhfhfhfhfs!
sina: ben_vulpes: oic. and why not just using black box testing?
sina: e.g. "how long does it take to hash document of N bytes size in M bits hash" with varying N and M?
ben_vulpes: eg runtime?
sina: is that all you want to measure? why not just use `time` then?
ben_vulpes: something something not great subsecond resolution or so the various reddits say?
ben_vulpes: obvious counterargument is that "don't bother with subsecond executions, dork"
sina: here is the thing, it depends on how anally you want to measure
sina: because, for example, python and lisp, probably most of the time will be spent in starting the runtime/interpreter than actual computation, unless you're doing larger sized stuff
sina: so if you really want super precise, apples <=> apples comparison, you would need to instrument performance on a per lang basis, no?
sina: of the main loop iterating through M
ben_vulpes: no i do intend to black box it
ben_vulpes: runtime startup is a cost of the program, innit?
ben_vulpes: mk go on, on what does it depend
sina: if I make an mpfhf daemon, then no
sina: (for example)
sina: that might be a fairer blackbox test?
ben_vulpes: anything else?
ben_vulpes: lol, well, depends!
sina: well, I dunno too much about lisp, does it "JIT" for long running programs?
ben_vulpes: i wouldn't keep a lisp runtime hanging around just on the offchance i want to hash things
ben_vulpes: i've no idea what you mean by that in this context
ben_vulpes: but extending from what i know of java's jit (not much), no. the whole file (at least in the tests i'm running) is compiled.
sina: for example, pypy is much faster than cpython for long running programs, because it Just In Time compiles
sina: same as LuaJIT vs Lua
ben_vulpes: faster in steady state runs or faster to compile?
sina: faster in the run because its no longer "interpreting"
sina: its reading something closer to native compiled code
ben_vulpes: dun think that's really in play here
sina: as an example
ben_vulpes: buddy how do you think i've been comparing things?
ben_vulpes: a stopwatch?
sina: ben_vulpes: sorry. I am referring to pypy JIT vs python
sina: just as an example of "anything else?" re "depends!"
sina: <+ben_vulpes> runtime startup is a cost of the program, innit? <<
ben_vulpes: sina: how does the paste relate to the JIT thread?
ben_vulpes: "cython wouldn't know the input type without chasing pointers all over the place"?
sina: ben_vulpes: you asked what else "it" can depend on, where "it" == whether or not runtime startup is a cost of the program or not
sina: my point was, either you *really* care about evaluating the actual main loop, which is a fair apples/apples
sina: or you are OK with a blackbox, in which case can just use time and avoid calling it with small loops where the runtime startup cost dominantes `time`
ben_vulpes: ah yeah i thought we'd put that thread to bed with http://btcbase.org/log/2017-07-02#1678389
a111: Logged on 2017-07-02 04:33 ben_vulpes: no i do intend to black box it
sina: black box doesn't have to be invoking from CLI each time tho, you could write a daemon around each impl and measure how long it takes to return a value
ben_vulpes: could, yes
sina: anyway, it does sound like `time` should be fine
ben_vulpes: adequately 'apples' from my pov; not particularly interested in imaginary performance comparisons of subsets of compiled programs
sina: from reading https://stackoverflow.com/questions/12593768/how-is-lisp-dynamic-and-compiled it looks like GNU CLISP compiles down to bytecode, which I guess will be probably performance equivalent to pypy
sina: it does sound like lisp is doing something JIT-like, except you can "re-JIT" at any time during execution?
ben_vulpes: sbcl lays down asm?
sina: ah ok
ben_vulpes: i think
sina: ben_vulpes: did you use sbcl the other day when you mentioned golang impl was faster than lisp impl?
sina: cos that'd be pretty interesting
ben_vulpes: definitely has hooks for disassembling a given function, so it would be nice if it also compiled *to* asm
ben_vulpes: sina: aye, i did
ben_vulpes: go's some 3-4x faster incl. runtime
sina: well, I guess lets see how the benchmarks play out over a larger dataset, maybe it evens out over a certain bitlength or bytesizer
ben_vulpes: myeah 'tis what i'm thinking
ben_vulpes: well who knows, who'm i to make guesses like that
ben_vulpes: but i am definitely interested to see how performance plays out on large sets
sina: ben_vulpes: will you include pypy?
ben_vulpes: could yeah
sina: ben_vulpes: I am about to head out the door so currently not the best time, but if it would help in anyway I can donate some compute to the effort
sina: can leave me a note with anything you require
ben_vulpes: mk neato
ben_vulpes: no rush
ben_vulpes: i'm well supplied with compute tho, thx
sina: I am out. hope all have a wonderful day
deedbot: http://www.contravex.com/2017/07/01/le-150ieme-partie-i/ << » Contravex: A blog by Pete Dushenski - Le 150ième – Partie I
mircea_popescu: ben_vulpes or you could just instrument your impl to read time at start and end ?
mircea_popescu: i'd call it good
ben_vulpes: you mean start and end of actual hashing routine?
ben_vulpes: why disregard runtime startup time?
mircea_popescu: because you're timing the actual impl.
ben_vulpes: not "unix tool as it may or may not be used in the future"
mircea_popescu: nobodyu cares about shitix.
ben_vulpes: had like five followups, all of which are probably answered by "this is probably one of those things worth doing rigorously"
ben_vulpes: well if i time just the hash impl it does squeak in under the go implementation
deedbot: http://qntra.net/2017/07/bitcoin-network-mining-difficulty-drops-0-43-percent/ << Qntra - Bitcoin Network Mining Difficulty Drops ~0.43 Percent
ben_vulpes: BingoBoingo: gotta a grass q for ya
ben_vulpes: mulch or compost?
BingoBoingo: Your lawn? Compost. Don't mulch your lawn, it needs to breath.
BingoBoingo: !~ticker --market all
jhvh1: BingoBoingo: Bitstamp BTCUSD last: 2416.74, vol: 10266.02584088 | BTC-E BTCUSD last: 2358.591, vol: 2944.95989 | Bitfinex BTCUSD last: 2333.4, vol: 14881.3570013 | BTCChina BTCUSD last: 2543.63455, vol: 7386.44530000 | Kraken BTCUSD last: 2397.731, vol: 4991.08122316 | Volume-weighted last average: 2402.67930284
ben_vulpes: BingoBoingo: ty
BingoBoingo: your grass is welcome
ben_vulpes: a not-great thing about this chart is that hash length is in bits but message length is in bytes: http://cascadianhacker.com/wp-content/uploads/2017/07/100.png
ben_vulpes: sina if you can get your implementations to print <execution_ms>\n<hash> that'll save me a bit of fiddling
ben_vulpes: https://github.com/sinner-/mpfhf-python/blob/master/LICENSE << hey sina ever read http://trilema.com/2015/a-new-software-licensing-paradigm/#selection-75.0-83.128 ?
sina: ben_vulpes: now enabled "python mpfhf.py <message> <bits> <time|notime>" (https://github.com/sinner-/mpfhf-python/commit/a8c37e51e3a893785519052f939c222c2178168a) and "mpfhf-golang -message <message> -bits <bits> -time <y|n>" (https://github.com/sinner-/mpfhf-golang/commit/674a502a93c63de8dacbb07e5eb9a62eb5dbee58)
a111: Logged on 2017-07-02 07:56 ben_vulpes: sina if you can get your implementations to print <execution_ms>\n<hash> that'll save me a bit of fiddling
asciilifeform: sina: garbage
asciilifeform: even let's suppose it weren't python3 ( which it is )
asciilifeform: python2 was also garbage, infix pseudolisp with globalinterpreterlock, broken lambda, 1,001 eager idiocies. apparently i write a handful of throwaway rubbish proggies in it ( was less atrocious than perl, so i threw out perl) but now i'm condemned for life to hear about it
asciilifeform: and to have folx suppose that i somehow want to perpetuate it.
asciilifeform: and, worse, to introduce it to places that happily worked without idiotic interpreter ( e.g. microcontroller ) at all
asciilifeform: http://btcbase.org/log/2017-07-02#1678460 << how about we roll the boot time ( to shell!! ) of your cmachinekernel, how about?
a111: Logged on 2017-07-02 06:06 ben_vulpes: why disregard runtime startup time?
asciilifeform: if counting lisp runtime load, why not the c runtime.
asciilifeform: http://btcbase.org/log/2017-07-02#1678431 << not only does it, but there is not even an interpreter in there as fallback ( see the old sbcl vs cmucl threads )
a111: Logged on 2017-07-02 05:05 ben_vulpes: sbcl lays down asm?
asciilifeform: http://btcbase.org/log/2017-07-02#1678356 << there are afaik no acceptable autoprofilers in existence at all. they all do this idiotic thing with statistical sampling rather than actual per-line timer ( because apparently the year is eternally 1980 and there is no highres timer, or wat.)
a111: Logged on 2017-07-02 03:58 ben_vulpes: in re benchmarking, is 'perf' a reasonable thing to use?
asciilifeform: ( see 'blackhole revealer' discussion from coupla mo. ago )
asciilifeform: http://btcbase.org/log/2017-07-02#1678477 << i have nfi why mircea_popescu went with ascii-010010010111.. for the output format
a111: Logged on 2017-07-02 07:55 ben_vulpes: a not-great thing about this chart is that hash length is in bits but message length is in bytes: http://cascadianhacker.com/wp-content/uploads/2017/07/100.png
asciilifeform: imho oughta be hexascii like earthlings use
deedbot: http://phuctor.nosuchlabs.com/gpgkey/479C78D67322671E964668B28E0CC778B7E5CBB10EB315D3E438860DA9014D18 << Recent Phuctorings. - Phuctored: 1612...5087 divides RSA Moduli belonging to '18.104.22.168 (ssh-rsa key from 22.214.171.124 (13-14 June 2016 extraction) for Phuctor import. Ask asciilifeform or framedragger on Freenode, or email fd at mkj dot lt) <ssh...lt>; ' (Unknown US NY)
deedbot: http://phuctor.nosuchlabs.com/gpgkey/479C78D67322671E964668B28E0CC778B7E5CBB10EB315D3E438860DA9014D18 << Recent Phuctorings. - Phuctored: 1497...2787 divides RSA Moduli belonging to '126.96.36.199 (ssh-rsa key from 188.8.131.52 (13-14 June 2016 extraction) for Phuctor import. Ask asciilifeform or framedragger on Freenode, or email fd at mkj dot lt) <ssh...lt>; ' (Unknown US NY)
ben_vulpes: http://btcbase.org/log/2017-07-02#1678500 << possibly artifact of how my first prototype did output; easily changed
a111: Logged on 2017-07-02 13:01 asciilifeform: imho oughta be hexascii like earthlings use
ben_vulpes: or no, it dates to his prototype
ben_vulpes: but if you'll excuse me, i'm going to go make a hash of breakfast
asciilifeform: btw ben_vulpes your mphash seems to use some shitlibrary that 1) i dun have 2) won't install via quicklisp
a111: Logged on 2017-07-01 23:36 sina: if you write a systemd unit file with "User=0day", it launches the process as root. Pottering sez: "not a bug"
a111: Logged on 2017-07-01 23:52 asciilifeform: and nao bernstein, henninger ( this is what, 3rd paper since she was attached to him ) 'unhappened and rehappened' it
mircea_popescu: sina "The Bitcoin network has more than 6,000 nodes," << lost interest at that point.
mircea_popescu: and this isn't just mp being hoity toity. the point here is that the sort of superficial schmuck who imagines bitcoin has 6k nodes, is also the superficial schmuck who imagines if bitcoin is framed through usg owned internet, that'll "just oiccur". it won't just occur, the same day there's a nuclear blast on capitol hill, no questions asked.
mircea_popescu: historically, the best way to "inexplicably" die suddenly was to attempt to attack groups of strictly selected, very determined, technologically superior people. bitcoin is no exception, whatever the hallucinations of the "we are talking about it therefore involved in it" crowd may show.
mircea_popescu: (you are aware, yes, usg vulnerable to nuclear blasts, latest studies show ?)
a111: Logged on 2017-07-02 07:11 BingoBoingo: Your lawn? Compost. Don't mulch your lawn, it needs to breath.
mircea_popescu: http://btcbase.org/log/2017-07-02#1678479 << to my eye the worst part of it is that it's very badly drawn. a) about half of the Y space is actually used, which is terrible. b) all the same color, they melt together, can't tell apart. can use color gradient ? (yes, on blue, not on red, can't see red).
a111: Logged on 2017-07-02 07:58 ben_vulpes: https://github.com/sinner-/mpfhf-python/blob/master/LICENSE << hey sina ever read http://trilema.com/2015/a-new-software-licensing-paradigm/#selection-75.0-83.128 ?
mircea_popescu: but other than that, looks like exponential on mlen and perhaps linear on hlen ?
asciilifeform: exponential on mlen << that dun look good...
mircea_popescu: kinda badly chosen cutoffs too, i don't specifically care re diff between 40 byte and 70 byte message. make it log on that side and do 16, 128, 1024, 8192 and 65536 byte messages, for 32, 256, 2048 bit hash lengths as a standard of testing.
asciilifeform: if can't hash a 1GB message , or even 1MB, in less than geological time -- not very useful, sadly, algo
mircea_popescu: asciilifeform i can't really visually saw that appart, but looks like it's a hlen ** b mlen or such.
asciilifeform: ( a 512byte msg doesn't need to be hashed... why would you )
mircea_popescu: asciilifeform useful for different things. apparently all of modern computing comes to "adjust your expectations". what do you need 1gb codebases for ?
mircea_popescu: a right, nothing.
asciilifeform: mircea_popescu: think back to what is the point of a hash to begin with
mircea_popescu: vpatches seem historically to go about 512 - 65535 bytes or so
mircea_popescu: if that'd covered, i'm happy.
asciilifeform: originally algo ( in the 1st , ancient version, suggested by asciilifeform in http://btcbase.org/log/2016-12-24#1589879 thread ) was to destructure inputs for rsa signing
a111: Logged on 2016-12-24 01:02 asciilifeform: incidentally, since (to borrow the lament of turing's school headmaster) 'the room already stinks of mathematics', i'll share a tidbit that i promised folx some half year ago and promptly forgot:
asciilifeform: ( what the derps call, maliciously misnamedly, 'padding' )
asciilifeform: that op doesn't even need much more than a kb or so
asciilifeform: 1 of the things i've been curious re mphash is bits-of-message-touched vs message-length
asciilifeform: and bits-of-output-flipped-per-bit-of-message-flipped vs message-length.
mircea_popescu: should be measured yes.
asciilifeform: also ( and should be theoretically possible to calculate ) what is the worst-case cycle count.
mircea_popescu: and in other lulz, #trilema OODA loop : "hey, make an X" "what kind an X ?" "JUST MAKE AN X!" *picks arbitrary params a through w, makes such an X. "here you go" "o cool, now set b to this and q to that, link l to k and make c double d" "here." "holy shit the submarine now flies! and lays eggs! good job man!"
mircea_popescu: asciilifeform what's the 1kb figure ?
asciilifeform: really a few kb
asciilifeform: depending on rsa modulus length
asciilifeform: ( N bit rsa modulus carries 'naked' payload of N bits )
mircea_popescu: basically, there's a large number of perfectly useful applications for 64kb capable hash. and upon examination it may be discovered that larger sizes not supported is not a bug
mircea_popescu: but a feature.
asciilifeform: can -- if you must -- merkle tree
mircea_popescu: or other things. and if you don't must, you FUCKING DIDN'T NEED THE GB.
mircea_popescu: large part of usgization of normal processes. "oh, does your msg app support VIDEO ?" bitch, i don't want to watch overweight dudes with their cats braying into a mic.
mircea_popescu: "but this would make it take mbps to use!" "right."
mircea_popescu: "does it at least support unicode ?" "no. you may not teach reading to arabs, it's a sin."
asciilifeform: btw here's another ! , potentially similarly bowel-loosening ! ( to the usual suspects ) hash algo on entirely different principles :
asciilifeform: 1) generate a single-use rsa public modulus, M
asciilifeform: 2) take the payload bitstring P, and calculate E = nextprime(P)
asciilifeform: 3) E is now your public exponent !!
mircea_popescu: this is computationally worse than mpfhf though. imagine, nextprime(todays log).
asciilifeform: actually not so bad.
mircea_popescu: if you have a hardware gmp or something
asciilifeform: no, even on pc.
asciilifeform: try it sometime.
asciilifeform: anyway i'll omit steps 4-6 and leave as exercise.
asciilifeform: but theoretically this scheme -- while algebraic -- is as strong as the rsa used in the wrapping layer.
mircea_popescu: this aside ; i'm kinda loath to mix rsa in both padding and encryption. for all anyone knows they resonate
mircea_popescu: (above is pure magical thinking)
asciilifeform: if you were to use == keys -- they actually would
asciilifeform: but you wouldn't.
mircea_popescu: trivial cases aside. may be hidden class there
asciilifeform: there's a (sadly nameless) principle, where a thing that ~someone else~ could easily do to your ciphertext, is not any added problem if you do it yourself
asciilifeform: ( 'someone else' being someone with 0 knowledge of the plaintext, naturally )
asciilifeform: funnily enough, last time we had a related thread, i looked for it in schneier 1995 where i THOUGHT i learned it
asciilifeform: and -- mega-surprise -- it ain't there...
mircea_popescu: original printed material ? or did it get expunged ?
asciilifeform: it was never there
asciilifeform: i have nfi where, if anywhere, it lives on paper.
asciilifeform: possibly i dreamed it.
mircea_popescu: anyway -- if you're making both the payload and the hash on the same machine...
mircea_popescu: asciilifeform it's well known, i had conversations re this in 2012. prolly can fish out quote.
asciilifeform: lol why not 'on the same street'
mircea_popescu: asciilifeform have you seen the rngs ?
asciilifeform: mircea_popescu: i can't imagine it wouldn't be well known. but i was digging for a 'schoolbook' description of it, which i thought existed.
mircea_popescu: this incidentally is a very undiscussed topic, suspiciously. what is the effect of generating BOTH the padding for a message and the key that's used on the same... historical debian / kochatron /etcv
asciilifeform: mircea_popescu: one nuance is -- it is folly to plan FOR a broken rng. 'what to do if a shell lands in my trench? jump twenty metres and scatter yerself around'
asciilifeform: the plan 'for broken rng' is to have 7 running from 7 batteries.
mircea_popescu: this is true.
asciilifeform: 'jesus bolt'
mircea_popescu: was jesus nut neh ? heli thing ?
asciilifeform: aha yes
asciilifeform: the item that holds the airscrew on.
mircea_popescu: ya. nut.
asciilifeform: incidentally theoretically you don't need the nextprime(), all you need is to compute that gcd(e, p-1) == gcd(e, q-1) == 1.
asciilifeform: ( if it isn't -- make a new e, or a new m=p*q, whichever you prefer... )
mircea_popescu imagines alf's 7-prop helicopter...
deedbot: http://trilema.com/2017/qntra-sqntr-june-2017-statement/ << Trilema - Qntra (S.QNTR) June 2017 Statement
a111: Logged on 2015-03-31 02:52 asciilifeform: i will now take the liberty of calling the hypothetical machine 'freyacopter'
mircea_popescu: flies equally well through molasses!
deedbot: http://www.contravex.com/2017/07/02/le-150ieme-partie-ii/ << » Contravex: A blog by Pete Dushenski - Le 150ieme – Partie II
ben_vulpes: http://btcbase.org/log/2017-07-02#1678507 << "bit-smasher"? came in from ql just fine for me. i only use it as a crutch to beat strings into bit-vectors.
a111: Logged on 2017-07-02 15:36 asciilifeform: btw ben_vulpes your mphash seems to use some shitlibrary that 1) i dun have 2) won't install via quicklisp
mircea_popescu: consider importing just the function / class you use
asciilifeform: ben_vulpes: i haven't 'updated' ql since 2011 and never again intend to !
asciilifeform: hence no shitbitter or wateveritwas
mircea_popescu: updates. never again.
asciilifeform: no genderolade kthx.
ben_vulpes: yes this refrain does ring a few bells
ben_vulpes: i will probably just implement the slice that i actually need
ben_vulpes: in other news, 65536 byte message, 256 bit hash took some 2.47 hrs
ben_vulpes: and heningerisms: "In this paper we demonstrate a complete break of RSA-1024 as implemented in Libgcrypt." https://eprint.iacr.org/2017/627.pdf
mircea_popescu: ben_vulpes that's pretty substantial. s size ?
mircea_popescu: that'd be the other point of interest, "how big does S get"
mircea_popescu: lobbes are you going to not let delinquents auction till they pay ? :D
lobbes: mircea_popescu, hehe. I was thinking of implementing that once n00bs start using the thing. Make it Wot-based at some level; disabling auction service for people lower down in WoT once delinquent x amount of time
lobbes: I gotta say, I'm experiencing the whole "WoT make decisions easier" thing in practice now. I.e. I know hanbot is good for it, and since I trust danielpbarron's rating of Birdman, I also trust that he, too, will be good for it
mircea_popescu: yeah i think so.