00:37:08atgreen:jgarzik: just sent you the gprof PR for your consideration
00:38:43jgarzik:atgreen, very nice :)
00:39:05jgarzik:I need to write a few demo smart contract thingies with moxiebox
00:42:27contrapumpkin:contrapumpkin is now known as copumpkin
00:49:31nsh:any public notes on the moxiebox work?
00:49:43gmaxwell:nsh: there is a github.
00:49:49gmaxwell:nsh: https://github.com/jgarzik/moxiebox
00:49:57nsh:it's like watching you guys whisper about the apollo project in arcane jargon
00:50:00nsh:ty
00:50:59nsh:what's a hand-built memory-map and whose hand builds it?
00:51:04nsh:"From the sandbox's point of view, the application is running as an unpriv'd application with only the ability to access data within the hand-built memory map."
00:51:56nsh:moxiebox-gdb is pretty cool
00:52:08nsh:i mean, to the extent that using gdb is pretty cool
00:52:18nsh:so in a better than having no debugger at all sense
01:11:53atgreen:gdb is pretty capable these days.
01:12:35gmaxwell:<3 gdb except that it's not so hard to crash.
01:12:49phantomcircuit:heh
01:13:03atgreen:nsh: arcane talk... I'm completely new to bitcoin so most of what I read here is jargon
01:13:15atgreen:I'm finally starting to understand _some_ of it.
01:32:43atgreen:we used to have a tag line for gdb: "GDB: The Best Debugger In The World... for debugging GDB"
01:54:48Dizzle__:Dizzle__ is now known as Dizzle
02:08:09[\\\]:[\\\] is now known as imsaguy
02:08:16imsaguy:imsaguy is now known as [\\\]
02:42:13petertodd:maaku: I implemented a pruning-capable MMR last night btw - wound up having each node commit to the # of leafs committed to by the node and figured out an implementation that has one set of rules for both perfect tree nodes and otherwise
02:43:12petertodd:maaku: not done 100% yet, but it appears to make proving things like "is state V1 a predessesor to state V2?" fairly simple
02:44:09petertodd:maaku: OTOH having # of values - basically as a summed value - introduces overhead in the hashing, and to a lesser extent, serialization
02:45:09petertodd:maaku: also a good sign: I spent ~2-3 hours writing the code, and it worked perfectly first try. Always a good sign IMO.
02:46:30gmaxwell:petertodd: good sign? nah. if software works is usually only because the tests aren't comprehensive enough.
02:46:33gmaxwell::P
02:47:46petertodd:gmaxwell: lol, yeah, it did pass tests without having to change the code :)
02:47:54sipa:if software works from the first time, i've experimentally verified that it is results in it being written in python
02:48:06sipa:and having some flaw that causes the tests to not run
02:48:16petertodd:sipa: heh, it is in Python :)
02:48:48gmaxwell:yea, my first reflex when software works the first time is that the tests are just ineffective; so then I go add a bug.
02:49:11petertodd:in all honesty, it's early enough that when I say I "wrote the code" that's just the very initial stuff to get the structure of the tree correct as things are added to it
02:49:32petertodd:(which also included a bunch of work on paper to figure out the algorithm)
02:50:03gmaxwell:I wonder if it's possible to design a bytecode which is optimal for mutation testing. E.g. where almost any change results in a change in behavior.
02:50:23sipa:petertodd: of course, if you'd be using haskell, the code _would_ work from the first time (after fixing compilation errors)
02:51:14Eliel:sipa: with haskell, yes, that usually happens. The only exception is when you screw up the high level logic :P
02:51:24petertodd:gmaxwell: haha, I'e got a few places in git history on this project where I added a unit test for some old, broken, behavior, then added a second commit to fix the behavior and change the unit tests :)
02:51:33sipa:Eliel: see http://r6.ca/blog/20120708T122219Z.html
02:52:05petertodd:Eliel: I'm rather skeptical about people's faith in haskell - I find writing tests a necessary way to double-check your understanding of the high level logic from multiple angles
02:53:23sipa:petertodd: and you're very right
02:53:33sipa:petertodd: but read that link still
02:53:51kanzure:.title
02:53:53yoleaux:Confession of a Haskell Hacker
02:54:12gmaxwell:it's easy for things to seem magical when everything is crap and the thing in question is slightly less so. :P
02:54:25petertodd:sipa: oh, I've read that one before - reminds me of dimensional analysis actually...
02:54:25gmaxwell:Rust also is reported to have a fairly high "if it compiles, it's correct" factor.
02:55:01kanzure:i've been resorting to lots of random iteration and combinations in tests. and loops over tests of random combinations. (plus some depth-wise comprehensive iteration)
02:55:07petertodd:gmaxwell: writing something real in Rust is high on my priority list. Other than not using whitespace as syntax it looks pretty decent
02:56:08gmaxwell:I've certantly written C code that I couldn't tell you at all how it worked; I just stated what the solution looked like 'inductively' (E.g. in recursive form) and the program computed the function.
02:56:29Eliel:petertodd: of course. Haskell doesn't help unless the programmer knows what he's doing.
02:56:42kanzure:ah yes the "how are you going to be clever enough to debug it" c2 flamewar
02:57:03petertodd:Eliel: good languages are resistant to drunk programmers :)
02:57:24gmaxwell:Eliel: see roconnor's post; "Worse yet, when I wrote the focus function, I actually had no idea how the function worked. I simply wrote a function that matched the required type"
02:57:25Eliel:however, in my experience, it's extremely difficulty to get anything even remotely resembling a working program with haskell in such a case :P
02:57:52kanzure:oh weird c2 doesn't have a page on "if you used max cleverness writing it then you aren't clever enough to debug or test it"
02:58:00petertodd:Eliel: and, there's actually a subtlety in that statement: part of being resistant to drunk programmers is being amenable to review by multiple people
02:58:05sipa:Eliel: he knew perfectly what it was doing; just not how
02:58:07kanzure:it's mentioned here http://c2.com/cgi/wiki?OverDesign but meh
02:58:23kanzure:haha "OverDesign for correctness is easy. Make the code twice as simple as it needs to be."
02:58:23Eliel:gmaxwell: ... well, sipa beat me to it :)
02:58:24sipa:Eliel: and that is awesome; a language that doesn't require you to care about the how
03:00:07kanzure:oh weird the quote is only about debugging, not testing. hrm.
03:00:41sipa:in many cases, there are reasons why you do want to care about the how (like for example performance, or constant-time requirements, or ...), and ideally you're able to specify it when you do
03:04:17gmaxwell:Thats one of the things that really killed me with python. Like the level of python skill to write a working python program is an order of magnitude lower than what it takes to write one that isn't 10x slower and 10x more memory consuming than a 'optimized' one. :(
03:05:12petertodd:gmaxwell: well, python is a language that gets very frequently used in cases where 1000x slower doesn't bother anyone...
03:05:14gmaxwell:Resulting in me getting things like factors of >>1000 slower python code vs my C code. :( which basically kills any argument about "programer time is more valuable"
03:05:23gmaxwell:well at least for me.
03:05:32sipa:if i care about performance at all, i won't use python
03:05:34nsh:* nsh smiles
03:06:05gmaxwell:Turns out if you make the constant factor big enough you _always_ care about performance.
03:06:48petertodd:sipa: somewhere I've got a python program that spits out math lookup tables from a 3d wireframe cube renderer I implemented on a 8-bit microprocessor :)
03:07:18petertodd:sipa: I cared a lot about performance there! just not in the palce with the python interpreter
03:07:25sipa:"This implementation is Graham's number times slower for small inputs, but is constant time instead of inverse-ackerman function"
03:07:28nsh:i view it more as an efficiently-didactic process versus an efficiently-algorithmic product
03:08:22nsh:but there's nothing particularly especial about python as a repl/fuxing about platform that can't be done in more algorithmically efficient languages with the relevant experience
03:08:30gmaxwell:(Otherwise I'd suggest moving your computing to http://dmitry.gr/index.php?proj=07.+Linux+on+8bit&r=05.Projects )
03:08:34nsh:so it's six of one half a dozen to the other
03:08:57petertodd:sipa: fun project, as the thing was so damn slow with so little flash available that I had to write up the perspetive and rotation equations by hand and simplify/juggle them until it could all be done with a single lookup table
03:09:09nsh:* nsh smiles
03:10:29petertodd:nsh: helped get me a job too!
03:10:43nsh:neat \o/
03:11:23petertodd:nsh: yeah, they passed it around upper management apparently to convince them I knew enough math to do a tech job :)
03:12:02nsh:heheh
03:12:46sipa:petertodd: so what did you study actually? is "fine arts degree" an actual degree?
03:13:18sipa:(by which i mean: to me, it sounds similar to "a science degree", which doesn't say what science you studied)
03:14:45petertodd:sipa: it's called "integrated media" at my school, but the curriculum is about half way between a straight up fine arts program and film school
03:15:10petertodd:sipa: quite heavy on acedemic theory about art, post-modern criticism, etc.
03:15:14sipa:i can't help wonder why you decide to study something like that :)
03:15:26kanzure:"well i'm already okay at computers"
03:15:33petertodd:kanzure: lol, kinda yeah
03:15:46kanzure:this plan backfired on me because i picked something that did not seem to have lots of content on the interwebs
03:16:27sipa:well, to be honest, i do wish i had taken electrical engineering (the department under which the cryptography research group is located) instead of computer science (where i didn't actually learn all that much useful)
03:16:37petertodd:my highschool had a comp-sci program that gave you something like 1.5yr - 2yr equiv of university level comp-sci, which I did, then quit that in the last year and took up ceramics/pottery - notably after a summer spent as a Perl programmer...
03:16:55kanzure:that was a good decision
03:17:01gmaxwell:sipa: usually the answer to such questions is "her name was..."
03:17:11sipa:?
03:17:13Luke-Jr:LOL
03:17:23sipa:ah!
03:17:23gmaxwell:"i can't help wonder why you decide to study something like that"
03:17:53Luke-Jr:then kanzure had to step in and give him an alternative reason? :P
03:18:05petertodd:gmaxwell: lets just say meeting girls at art school has better odds :)
03:18:16gmaxwell:(of course substuite prefered genders as relevant for the particular person)
03:19:13sipa:in high school there was an awful german teacher (who was actually called Fritz) in 5th/6th year, and there was one program which did not include german. the 8-hour-math-per-week one. result: half of the 8-hour-math people were really just there to avoid german. most of them reconsidered after a few months
03:20:14petertodd:sipa: haha
03:20:21Luke-Jr:@.@
03:20:48sipa:this teacher was also known for his very effective 'teaching' strategy; the christmas exam was near impossible, the end-of-year one was trivial
03:21:14sipa:result: everyone 'learned' a lot of german during the second semester from him
03:21:23petertodd:sipa: :/
03:22:53petertodd:sipa: all through artschool I was nearly 100% excellent teachers... boy was I in for a shock when I went into physics after :(
03:23:38petertodd:sipa: how the fuck can you teach a class if you're too shy to look at the students? (obvs answer: because you're a math major grad student)
03:24:24sipa:i have a headache and it's 4:24 am
03:24:35sipa:i am wondering whether i should go sleep instead
03:25:04petertodd:sipa: work on unit tests until you fall asleep :P
03:52:59op_mul:sipa: yes. tired and a headache doesn't make good unit tests.
04:29:53[\\\]:[\\\] is now known as tripleslash
04:30:17tripleslash:tripleslash is now known as [\\\]
04:32:51[\\\]:[\\\] is now known as pirateat40
04:36:20pirateat40:pirateat40 has left #bitcoin-wizards
06:04:47Pan0ram1x:Pan0ram1x is now known as Guest96271
09:05:16hitchcock.freenode.net:topic is: This channel is not about short-term Bitcoin development | http://bitcoin.ninja/ | This channel is logged. | For logs and more information, visit http://bitcoin.ninja
09:05:16hitchcock.freenode.net:Users on #bitcoin-wizards: andy-logbot PRab adam3us wallet42 soundx NewLiberty fanquake damethos grandmaster justanotheruser HaltingState pgokeeffe Guest96271 coiner tripleslash koshii_ [7] Starduster Shiftos d1ggy_ Dr-G2 zwischenzug Dizzle__ copumpkin Fistful_of_Coins kyletorpey xabbix_ hashtag Taek ebfull devrandom shesek huseby forrestv midnightmagic jbenet lnovy rasengan nsh cfields Muis michagogo btc__ adlai brad___ delll c0rw1n a5m0 mkarrer_ Nightwolf wiz
09:05:16hitchcock.freenode.net:Users on #bitcoin-wizards: waxwing DoctorBTC nick1234abcd__ PaulCapestany bosma Graftec SubCreative dgenr8 gribble samson_ atgreen fluffypony bbrittain jaekwon_ spinza wumpus iddo irc88 thrasher` yoleaux butters Tjopper NikolaiToryzin epscy wizkid057 luny tacotime nuke1989 mortale catlasshrugged op_mul maaku cluckj Hunger- hashtagg Greed Iriez ajweiss BlueMatt mbelshe Graet dansmith_btc starsoccer Grishnakh Luke-Jr BrainOverfl0w burcin [d__d] gavinandresen danneu
09:05:16hitchcock.freenode.net:Users on #bitcoin-wizards: catcow TD-Linux ryan-c smooth Alanius AdrianG tromp pigeons Dyaheon- Cory livegnik MRL-Relay pi07r sadgit throughnothing lechuga_ poggy JonTitor hollandais amiller LarsLarsen kumavis artifexd hguux_ Meeh yrashk jgarzik Keefe berndj morcos Logicwax stonecoldpat sl01 optimator null_radix roasbeef_ BigBitz mappum gnusha otoburb mr_burdell s1w go1111111 HM2 Apocalyptic sdaftuar btcdrak CryptOprah jcorgan tromp_ lclc_bnc harrow @gmaxwell isis
09:05:16hitchcock.freenode.net:Users on #bitcoin-wizards: brand0 eric Krellan @ChanServ jaromil petertodd helo v3Rve espes__ nickler ahmed_ warren fenn phantomcircuit kanzure bobke BananaLotus coryfields Anduck Eliel nanotube gwillen heath EasyAt asoltys_ K1773R comboy andytoshi warptangent Guest38445 phedny so crescendo sipa sneak azariah kinlo
11:06:15justanot1eruser:justanot1eruser is now known as justanotheruser
11:46:52chris2000:chris2000 has left #bitcoin-wizards
12:07:58wumpus: well, to be honest, i do wish i had taken electrical engineering (the department under which the cryptography research group is located) instead of computer science (where i didn't actually learn all that much useful) <- same here, though the grass does always look greener at the other side. I think practically I made the right choice going for CS, but it's hardly the most interesting thing to study. A lot of it is too
12:07:59wumpus:much like fashion and delusions-of-the-day too little like science.
12:15:59maaku:too much benchmark-and-publish :\
12:16:02wumpus:and sometimes it looks like all the interesting work was already done in the 60-70's and we just ended up on some path, adapting along with the technology, cherry-picking old ideas here and there, eventually discarding the other possiblities as they're not economical to get to from here. There's so much software...
12:19:25wumpus:maaku: yes - after all, it must be performant for current hardware and software, but the underlying assumptions change all the time due to small details shifting under you
12:21:42wumpus:sometimes I wish I had chosen something more grounded in physics and laws of nature instead of all the sand castles we're building on top. Then again, hey, at least now I have a job... :-)
12:22:12maaku:wumpus: Engineering Physics was the major I settled on -- best of both worlds :)
12:22:46wumpus:maaku: yep
12:25:20kurzalevski:is there a way to get a -1 confirmation transaction on testnet in order to reproduce a case from production?
12:25:52wumpus:kurzalevski: that's a -dev question, I'm happy to help you there
12:26:03kurzalevski:damn, sorry
12:41:43sneak:any miners want an off-chain bitcoin contract to include a specific mempool tx in the next block?
12:56:55op_mul:gmaxwell: is there any value in somebody grinding RFC6979 outputs to get one with > n retries? I can't work out if the comment in sipa's library is asking for one, or just commenting that it would be interesting to find one.
13:01:19op_mul:I've been looking for an excuse to attempt to strip some of the slow out of libsecp256k1 and that seems like a good excuse.
13:03:21op_mul:by slow I mean hardening.
13:04:37wumpus:op_mul: for testing it'd be nice to find one
13:05:06sipa:if you find one, we have a problem
13:05:31sipa:there is less than 1 in 2^127 chance for needing a retry, withna random nonce
13:07:52wumpus:even bitcoin mining is bountyful by comparison :p
13:08:07op_mul:oh.
13:08:42op_mul:I didn't even work out how common they were, I just saw someone had their RFC6979 code have a limit of 1k retries. I assumed it was one in 2^32 or something based on that.
13:11:39wumpus:it compares the 256 bit result against >0 and <0xffffffffffffffffffffffffffffffffbaaedce6af48a03bbfd25e8cd0364141
13:13:14wumpus:as for slow, IIRC the verification stuff only gets compiled in while compiling the tests
13:13:49op_mul:I meant more time-constant-ness.
13:15:05op_mul:here we go, this is the source of my mis-informed-ness regarding how likely retries are. obvious looking at it now, but I just assumed from the number of retries. https://github.com/trezor/trezor-crypto/blob/795579cbacb5e4bd072d7cef2a2638f1d44c2d0d/ecdsa.c#L282
13:18:25wumpus:that's a very safe margin
13:19:10wumpus:1 in (2^127)^10000
14:01:30gavinandresen:gavinandresen has left #bitcoin-wizards
14:08:19petertodd:wumpus: having done comp-sci, physics, engineering, and fine art, I kinda agree - physics/engineering met the science side of things, and fine-art balanced it out. comp-sci is an awkward compromise in the middle
14:09:49justanot1eruser:justanot1eruser is now known as justanothures
14:09:59justanothures:justanothures is now known as justanotheruser
14:10:28wumpus:petertodd: if only I could tell myself 16 years ago :P
14:10:52nsh:* nsh smiles
14:11:25justanot1eruser:justanot1eruser is now known as justanothuser
14:12:12justanothuser:justanothuser is now known as justanotheruser
14:13:36stonecoldpat:thats a problem with comp-sci, it is increasingly about pumping out programmers, who have little skill but programming, i've seen some undergraudates scared upon seeing a sigma symbol on a slide
14:14:16stonecoldpat:and then at the phd levels, being used as cheap developers which is a shame
14:15:19petertodd:wumpus: well, careful that's not a "grasss is greener" thing - the engineering interns I'd get to work with every summer at my last job were... interesting... even the ones in their final years
14:15:24instagibbs:stonecoldpat: which is funny because PhD students tend to be bad programmers. Just cheap ones that understand math :)
14:16:49petertodd:instagibbs: an interesting question would be if there's more call for programmers with non-comp-sci focused math than there is with
14:17:04petertodd:instagibbs: e.g., are you more useful if you, say, get a physics degree and learn some comp-sci?
14:17:15instagibbs:there's certainly a huge market for such people yes
14:17:21instagibbs:finance
14:17:26petertodd:yup!
14:17:35instagibbs:source: many friends who did that after phd :D
14:17:57petertodd:instagibbs: hell, you can kinda argue I left physics to do finance :P
14:18:00wumpus:petertodd: well, one sample point, ASML, where I've worked, was big time looking for programmers with physics experience
14:18:17wumpus:petertodd: their problem was requiring them to write *C* :p
14:18:34instagibbs:I for one did compsci straight through, and agree with assessment. It wasn't useless for me or anything, since I didn't grow up programming or anything, but I had to learn math in grad school for real
14:18:39stonecoldpat:petertodd: thats exactly a problem, people who study comp-sci lack another dimension of skills, so students from a physics/mathematics background have an advantage as they have more to offer
14:18:50petertodd:wumpus: lol - requiring anyone to write C is insanity :)
14:19:09instagibbs:stonecoldpat: although they learn fortran and shit like that. I have to teach them better programming
14:19:15petertodd:wumpus: university of toronto has a combined physics/comp-sci program last I checked (IIRC technically I was in it!)
14:19:42wumpus:petertodd: I was one of the few persons with a compsci and security background in the department where I worked, which was the heavily software-focused part
14:19:48petertodd:instagibbs: hey, don't hate on fortran! it's actually a half-decent language, or at least that's what upper management at my last job said - they used it in production...
14:20:06instagibbs:petertodd: My brother has been shamed into not using it anymore(economics)
14:20:13instagibbs:the old guard still all use it
14:20:15wumpus:petertodd: so it's not quite for lack at demand of companies, I just think it's not so interesting anymore :)
14:20:16stonecoldpat:instagibbs: fortran! i've managed to avoid that so far
14:20:28instagibbs:physics, economics, etc still all use it
14:20:49petertodd:instagibbs: heh, I hear it's still has better optimization possibilities than pretty much any other language for certain types of problems, as expected, because of a lack of expressiveness :)
14:21:16instagibbs:I'm sure it's used for a reason :)
14:22:01wumpus:petertodd: well for one they shot themselves in the foot with pointers and buffer overflows all the time - there was high pressure to generate efficient code directly from matlab, but that didn't work very well yet either
14:22:41wumpus:e.g. proprietary, crappy toolchain
14:23:37petertodd:wumpus: ugh, matlab... I remember having to deal with the crazy C and VHDL code it and and Simulink would output...
14:23:56wumpus:there's *lots* of demand for doing efficient, parelelllized where possible, computation but without the burden of memory unsafeness
14:23:58instagibbs:it's a hack of a language
14:24:47instagibbs:If I could do it all over again, I wouldn't drop CS. I would just append something like physics onto my degree
14:24:48petertodd:wumpus: but sadly that entire field is lackign enough actually skilled programmers to build tools to make all that stuff possible :(
14:24:50wumpus:petertodd: yeah :( there was a preojct to push them in the direction of numpy scipy and friends instead
14:25:09instagibbs:(i did foreign languages as my 2nd concentration. While fun it's not very useful in US)
14:25:28petertodd:wumpus: yeah, just before I left there was a company decision to move to numpy/scipy wherever possible. I'm sure that's been semi-rejected, but at least they recognized the problem.
14:26:04petertodd:instagibbs: foreign languages is too specialized to make a good 2nd concentration I think
14:26:26wumpus:which is better than matlab, and a step forward, but doesn't support efficient compilation (without burdensome runtimes) either. But for most, not-entirely-performance-critical parts it's at least safer than writing in C, or exporting C from matlab.
14:26:39instagibbs:petertodd: well it had "nothing" to do with my major... that was kind of the point
14:26:40petertodd:instagibbs: (I mean, if it's going to be useless directly, better take a 2nd concentration that's general like philosophy)
14:27:10instagibbs:petertodd: oh I dunno, it's led to some great life experiences. And indirectly helped when I worked on Natural language processing
14:27:17petertodd:wumpus: well, the route to efficient compilation in numpy is to use cython :)
14:27:57petertodd:instagibbs: ah, well that's an edge case then! - my mom always told me to pay more attention to my french classes back in school because I might meet a nice french girl one day
14:28:31wumpus:petertodd: sure - but with a big custom build system, and a weird architecture (SPARC), integrating new tools wasn't so easy :)
14:28:32petertodd:instagibbs: only took me nearly 20 years to meet one who wasn't also 100% fluently bilingual :)
14:29:27petertodd:wumpus: agreed, although cython is the easiest new tool in that case as it compiles directly to C using the python extensions API - not zero, but probably feasibel
14:30:16kanzure:(new?)
14:30:49petertodd:kanzure: I mean "new" for wumpu's crazy SPARC case :)
14:32:38kanzure:hmm petertodd does not use tab completion
14:32:51petertodd:?
14:33:13instagibbs:wumpus <-
14:33:18petertodd:lolol, true :)
14:34:05petertodd:IRC is just one of many ways I communicate; can't get into the habit of using tab-completion on it and not others
14:34:32wumpus:petertodd: anyhow, all of that is just the same ideas, rehashed time after time again, reimplemented by new generations, without really going forward, so much focus on 'products', 'apis' and specific artifacts ... maybe it's true and I'm just getting too old for this
14:36:00petertodd:wumpus: but you see, "products", "apis" etc. are pure tech constructs, they're in a big part human interface design, and our wetware and understanding of it doesn't change that fast
14:36:08petertodd:wumpus: *aren't pure tech
14:37:14kanzure:jrayhawk once described biology like "... there is no source, the bytecode has multiple reentrent abstractions, is unstable and has a very low signal to noise ratio, the runtime is unbootstrappable, the execution is nondeterministic, it tries to randomly integrate and execute code from other computers... multiple reentrant and self-modifying abstractions. absolutely everything has subtle side effects."
14:37:20kanzure:you should all become molecular biologists
14:37:40petertodd:wumpus: not to say you're wrong... just that there isn't an easy way to push any of it forward - you'll always be limited by the necessity of creating solutions that 95% of the programmers out there understand, which means if you have some great idea, you may find you need to do more work on educational materials than actually implementing/developing it
14:37:42wumpus:petertodd: yes but they shift all the time. it's like having to re-learn English every year.
14:38:32wumpus:kanzure: that description makes it sounds really intruiging
14:38:34petertodd:wumpus: indeed, they shift horizontally in a bizzare random walk pattern, where periodically the worker ants get too far from the food source and starve :)
14:38:52kanzure:wumpus: it is quite intriguing. it is frustrating to work with but the results are pretty ridiculously overpowered (lifeforms).
14:39:08op_mul:petertodd: they get into loops, too. big spirals of death that they walk until they all starve and die.
14:39:42petertodd:kanzure: haha, reminds me, I cornered some unfortunate geneticist at a party recently - well actually she cornered me trying to learn about Bitcoin - and after an hour or too I finally felt I understood genetics well enough to grasp it :)
14:39:58op_mul:petertodd: ref: https://en.wikipedia.org/wiki/Ant_mill
14:40:00petertodd:kanzure: that description is dead on
14:40:32kanzure:(most of the procedures are things like "perform these 20 steps and as long as the phase of the moon is right, it will probably work")
14:41:06petertodd:kanzure: I actually found it kinda took the magic away a bit, when it was explained to me how so much of how biology works is just eons of evolution micro-optimizing endless numbers of tiny little feedback loops
14:41:19kanzure:yeah it's just a misunderstood subfield of geology
14:41:23petertodd:lol
14:41:44kanzure:bitcoin is quite similar with all sorts of wacky subtle side effects, actually
14:42:11wumpus:kanzure: yup
14:42:25petertodd:kanzure: heh, bitcoin reminds me of analog electronics :)
14:42:55wumpus:kanzure: it's crazy enough to keep me hooked on it
14:42:57kanzure:"which one of the other 10 million poorly-created proteins is causing this cell to crash and die?"
14:43:27kanzure:of course, the majority of biology was learned first by inference, followed by experimental verification later... so that doesn't help...
14:43:28instagibbs:well it results in systems we dont really understand at all like the human brain
14:43:30petertodd:kanzure: more like "which one of the other 10 million utterly-whack proteins is causing this cell to not die?"
14:43:42kanzure:and each attempt at verification costs like $10k-$100k because nobody knows how to make cheap methods of interacting with cells
14:44:24petertodd:haha, it really got me talking to this geneticist how horrid actually working with biology is - hell, she had recently quit the field to go into business management
14:44:43kanzure:one of my projects is a cheap open-source dna synthesizer http://diyhpl.us/~bryan/nucleic/fbi-diybio-dna-v1.pdf
14:44:45wumpus:instagibbs: we understand it a small bit, neurology is also interesting, though primitive
14:44:48Adlai:as "we" get better at growing tissues - first artificial meat, then entire organs... eventually we'll be growing brains as well
14:45:37instagibbs:wumpus: I'm from the statistical learning field, so I guess it's my cynicism when compared to popsci articles about "artificial brains"
14:45:46wumpus:instagibbs: e.g. we look at these large correlations between signals on a >1mm resolution, and try to conclude something from it what happens on the neuron level
14:46:08wumpus:instagibbs: well my sister studies neurology so I'm not coming from popsci there
14:46:15kanzure:or as anselm levskaya says, "Those of you who have not done biology can't realize how primitive things still are. A CS analogy is that we're trying to reverse engineer a non-deterministic alien architecture from the future via a remote debugger over a noisy line that has no error correction and runs at a fraction of a millibaud, where every peek or poke costs hundreds to thousands of dollars. With the advent of high-throughput ...
14:46:21kanzure:... sequencing we just figured out how to get noisy ROM/RAM dumps (genotype), but still have precious little ability to quickly interact with the biological systems under study (phenotype). Biology is much more like hacking and reverse engineering than it is like physics or mathematics. A working exploit is worth much more than general pontification. The transformative events in biology these days are the clever hacks that enable whole ...
14:46:27kanzure:... new classes of fast experiments to be done: quick homologous recombination induced by CRISPR, optical interrogation of neural systems using light-sensitive ion channels, the development of adeno-associated viruses for rapid introduction of genetic material, etc. In the coming decades the combination of such clever hacks with cheaper automation and sensors will hopefully bring a flood of new data that will make a predictive, ...
14:46:33kanzure:... quantitative science of biology possible."
14:46:40wumpus:instagibbs: but yes, of course it's blowed up extremely in the media
14:47:18wumpus:instagibbs: the only science for which that doesn't happen is CS, which is good, but also becase no one gives a shit :(
14:47:21kanzure:(although personally i don't think the data collection is that important. just new techniques and methods to inject code.)
14:47:58Adlai:you don't know what to inject until you've read the fine source
14:48:05petertodd:kanzure: you know, it's funny how not-unlike biology is to astronomy in terms of the tools available for understanding what's actually going on
14:48:17kanzure:ah with astronomy you really can't probe at all i guess
14:48:53petertodd:kanzure: indeed, and in biology, the probes suck so much in many cases you might as well not be probing - biology is moving towards really heavy use of computer simulations to get around that problem, as astonomy has always done
14:49:23instagibbs:kanzure: probably not a good idea regardless. Don't want to give our presence away
14:50:13kanzure:some attempts at probing have done pretty well, like here's visualization of whole-brain neural activity http://www.nature.com/nmeth/journal/v10/n5/fig_tab/nmeth.2434_SV4.html
14:50:32wumpus:kanzure: visualizing the activity is the easy part
14:50:37petertodd:wumpus: +1
14:50:43instagibbs:yep
14:50:49petertodd:wumpus: even knowing what you'r actually visualizing is non-trivial
14:50:58instagibbs:even if we somehow core dumped the activity
14:51:25wumpus:but making conclusions from that is hard, unless there is a clear localized issue, which are pretty much the exception
14:51:27kanzure:patch clamp is a good technique for dumping data neurophysiology state data
14:51:35kanzure:whoops, too many datas in that sentence
14:52:08petertodd:kanzure: what do ethics boards think of using "patch clamps" on people? :)
14:52:25instagibbs:from a learning perspective, we're really not sure how its done. neurons firing something something connections strengthening
14:52:45petertodd:instagibbs: it's telling how poorly we understand neural nets, let alone neurons...
14:53:03instagibbs:petertodd: we're using backprop, which is almost surely false :P
14:53:10petertodd:instagibbs: exactly
14:53:44kanzure:petertodd: well they use patch clamp + microdialysis on mice with "brain windows" (glass or plastic ports into the skull), although i haven't seen this reported in human specimens yet
14:54:19instagibbs:there is modern neural network research that tries to be more "true" while also learning something
14:54:34wumpus:backprop is efficient to simulate, and gives reasonable results, but it was never intended to mimic reality
14:54:41instagibbs:but they tend to be quite weak
14:55:09instagibbs:wumpus: it falls out of gradient descent, but it's quite telling that we have nothing that even comes close that makes more sense biologically
14:55:10wumpus:and not a good fit for our computers
14:55:31kanzure:we have a few things that try to be accurate emulators of biological neurons, like the poorly-named NEURON project
14:55:38petertodd:instagibbs: one issue with "weakness" there is that it may turn out that intelligence is a matter of having stupid amounts of highly-optimized custom circuitry rather than actual general learning capabilities
14:55:40kanzure:http://neuron.yale.edu/neuron/
14:56:11kanzure:petertodd: generally most brains across the animal kingdom are extremely similar
14:56:17instagibbs:petertodd: quite possibly. But even then we'd really like to copy that :)
14:56:22kanzure:petertodd: http://fennetic.net/irc/human_chimpanzee_brain_differences.png
14:56:37petertodd:kanzure: indeed, which gives you hundreds of millions of years of evolution to come up with a wide diversity of building blocks to patch together
14:57:06instagibbs:kanzure: most creatures are doing very similar things. aka we don't need to do 3SAT problems in our heads
14:57:21op_mul:it would be nice if human memory was more quantitative though.
14:57:41petertodd:did you know that trees have some of the most complex genomes out there? why? because they can't move, live a long time, and have a long evolutionary history, so there's genetic material for practically every situation
14:58:03kanzure:trees definitely move
14:58:25instagibbs:kanzure: only when you blink
14:58:43op_mul:isn't a lot of DNA simply unused? most between all animals today is the same, only a small portion varies from species to species.
14:58:54kanzure:non-variation does not mean non-use
14:59:09petertodd:kanzure: nono, trees have evolved enormously powerful telekinesis - when you think they're moving they're actually moving the entire universe around them
14:59:22petertodd:op_mul: "unused"
14:59:48petertodd:op_mul: much of the so called "unused" DNA gets turned on in weird situations, is avilable for evolution, we're not sure yet, etc.
14:59:49op_mul:isn't some animals having vastly more DNA without any extra functionality a good indicator of that?
15:00:06kanzure:it is very hard to determine non-functionality of "extra" DNA
15:00:31kanzure:if you remove what you consider to be excess dna and the creature still functions in your lab, that still doesn't mean the dna was doing nothing
15:00:33petertodd:op_mul: there's also the concept in inter-DNA evolutionary competition, where certain fragments of DNA are more succesful at reproducing than others, potentially at the expense of the organisms overall evolutionary fitness
15:00:34wumpus:petertodd: yes so there is evolutionary learning/computation and neural learning/computation and both interact
15:01:15cletus11:cletus11 has left #bitcoin-wizards
15:01:17petertodd:kanzure: for starters, in your lab does the creature ever get exposed to predators? lack of food? UV light? etc.
15:01:38wumpus:op_mul: but how do you judge the 'functionality' of animals? they may have evolved to cope with all kinds of situations that you can't easily enumerate
15:02:31kanzure:yes you are not going to be able blackbox enumerate the functionality of a million genes across a million different million-variable life histories
15:03:15petertodd:wumpus: heck, look at how now it's well accepted that evolution is sufficiently evolved in humans that we change the genetics expressed in our children based on life experiences
15:03:18wumpus:a lot of those circumstances may never happen again, so the DNA may be burden, but if not it is prepared
15:04:15wumpus:... and they call software a mess :-)
15:04:37kanzure:at least there's some resilience in cells
15:04:47petertodd:"Richard Dawkins demonstrates laryngeal nerve of the giraffe" https://www.youtube.com/watch?v=cO1a1Ek-HD0
15:04:53op_mul:I can't remember even where I got this, but I was under the impression that they were just literally unexecuted branches left over, more related to the age of the species than anything else
15:04:57kanzure:considering their vast range of functions they mostly take care of htemselves
15:05:19kanzure:op_mul: it is hard to determine which things are definitely expressed and definitely not expressed
15:05:24wumpus:yes, the resilience is the nice part about biology. computer software is so fickle and breaks easily and consistently needs babysitting...
15:05:48petertodd:wumpus: OTOH, when it does work, it can work orders of magnitude better than biology ever could
15:06:08wumpus:petertodd: but on a laughable timescale, and consuming tons more energy
15:06:27kanzure:this is one of my favorite techniques:
15:06:27kanzure:http://diyhpl.us/~bryan/papers2/microfluidics/Ultrahigh-throughput%20screening%20in%20drop-based%20microfluidics%20for%20directed%20evolution%20-%202010.pdf
15:06:35kanzure:or more obviously i guess, http://diyhpl.us/~bryan/papers2/bio/directed-evolution/Microfluidic%20cell%20sorter%20for%20use%20in%20developing%20red%20fluorescent%20proteins%20with%20improved%20photostability.pdf
15:06:53op_mul:kanzure: yeah. I'm out of my depth. I just wish we had cephalopod eyes not the ones we ended up with. no blind spot, better sensitivity, better lenses. what's not to love?
15:06:53petertodd:wumpus: depends on the problem! I'll bet you we use something like 7-9 orders of magnitude more energy to add two numbers together than a Intel CPU :)
15:07:05kanzure:since they are already capable of "taking care of themselves" (minus food you provide and a stable environment), you can just select members of each population to over time develop features more like you want
15:08:24wumpus:petertodd: sure, good point.
15:10:48petertodd:wumpus: equally though, it wouldn't that unexpected if it turns out that to have human intelligence you need a physical computational device made out of brain rather than silicon - it's still not clear what "computational density" the human brain works at, and the lower limits on it are apparently not that far from silicon
15:10:49wumpus:petertodd: we expend energy to build circuits that are very good at narrow, specialized tasks
15:11:59petertodd:wumpus: indeed, yet it's not clear at all what biology can actually do - maybe we could engineer scratch-built wetware that was just as good, if not better, than silicon circuits?
15:12:04kanzure:petertodd: at minimum we know from the comparative neuroanatomy between say chimpanzee brain and human brain that even brains that look quite similar may not be enough to generate human-similar cognitive ability
15:12:27wumpus:petertodd: I wouldn't be surprised either; maybe silicon versus carbon is just a 'process' with different tradeoffs
15:12:28petertodd:kanzure: indeed! human intelligence could easily be mostly a matter of programming
15:12:59kanzure:petertodd: i have been enjoying this paper recently on this topic (sort of) http://diyhpl.us/~bryan/papers2/ai/How%20hard%20is%20artificial%20intelligence%3f%20Evolutionary%20arguments%20and%20selection%20effects%20-%20Shulman%20-%20Bostrom.pdf
15:13:29petertodd:wumpus: yup, and there's some unique stuff about carbon, like how you can create extremely thick - in the 3rd dimension - circuits that silicon planar processes have an exceptionally hard time doing. that's a density advantage that may be more important than the faster speed of silicon
15:14:27kanzure:also fun http://diyhpl.us/~bryan/papers2/brain-emulation-roadmap-report.pdf
15:14:30petertodd:estimates for how much "raw computational power" a single human brain has apparently go as high as "all the computers google has", just with way more parallelism and way less scalar speed
15:14:59kanzure:those sorts of comparisons may turn out to be useless
15:15:01wumpus:petertodd: yes, they've tried a lot re: 3-dimensional circuits, but the heat production breaks it
15:15:24kanzure:the brain has lots of microcapillary structures with blood to move heat away from neurons and glial cells
15:15:26petertodd:wumpus: exactly! how do you get the heat out? it sure would be convenient if we could easily grow pipes everywhere :)
15:16:01wumpus:petertodd: hehe, yes all that plumbing in our body, it supposedly has reasons!
15:16:24petertodd:wumpus: like oxygen concentrations in the atmosphere only being ~20%
15:16:31kanzure:although heat does not seem to be the main constraint of other mammalian brain evolution, e.g. it's not enough to explain the differences that we observe in human brain ability
15:17:13kanzure:here is an analysis of brain constraints that a mathematician did http://diyhpl.us/~bryan/papers2/neuro/Thermodynamic%20constraints%20on%20neural%20dimensions,%20firing%20rates,%20brain%20temperature%20and%20size.pdf
15:18:54wumpus:petertodd: "all the computers google has" involves a lot of parallelism too ;)
15:19:09petertodd:kanzure: I like how the computational demand estimates for the human brain span at least 14 orders of magnitude :)
15:19:41gmaxwell:op_mul: we have tests in the library that test the retry logic in any case (by replacing the function with an intentionally broken one)
15:20:06kanzure:well at minimum we know i can do mental arithmetic... and we know the sensory bandwidth maximums (multiple number of receptors anywhere in the body times the number of bits each receptor can detect, and this places an upper bound on the amount of sensory input)
15:20:20kanzure:*multiply
15:20:38wumpus:petertodd: there have been times that they though the key to the puzzle was just parallelism and lots of connections, but looking at today's internet, and how it hasn't developed too many visible brain-like properties yet, I guess it needs more
15:21:45petertodd:wumpus: OTOH, that may still be a software problem, equally, the physical construction of the human brain may give relatively low latency for much of that parallelism that's hard to obtain otherwise
15:21:48kanzure:speaking of which, ralph merkle had some okay estimations of human brain computation
15:22:46wumpus:petertodd: maybe, though neural connections have large amounts of latency compared to wire
15:25:38kanzure:i suspect one of the major differences is human salience or relevance encoding.. you don't see other creatures memorizing huge amounts of what-seems-to-be-at-the-time useless data. and then various selection effects on top of this to produce brains better at doing this.
15:26:01op_mul:gmaxwell: I was digging for excuses to mess with intentionally insecure signing, mainly.
15:26:57petertodd:wumpus: well, so there's about a six order of magnitude difference between the speed of electron wave propagation and neuron action potential propagation, which if I'm correct would imply something like a six order of magnitude volumetric density increase to be equivalent - can you do that with neurons? I'm certainly not going to rule it out
15:28:45petertodd:wumpus: given we're talking about mostly planar silicon vs. mostly 3d brain, the brain can be something like ~1000x less dense than silicon, probably more like ~10000x to be competitive
15:28:52kanzure:(the existence and practice of "oral history" is a good example of how ridiculous human brains are. since we didn't have writing, we just figured out how to say words long enough to remember everything in recorded history. that's intense.)
15:29:45AdrianG:pop neurosci.
15:29:47petertodd:kanzure: man, you'd think god would have just given us a data port on the back of our heads or something
15:29:52AdrianG:the best time-waster for the internets
15:30:13op_mul:petertodd: we have one on the front and sides.
15:30:27op_mul:encoding's a bit weird though
15:30:40petertodd:op_mul: lol
15:30:50AdrianG:we have a massive dataport.
15:31:16petertodd:AdrianG: yeah, but it's hobbled with parsing layers that can't be turned off
15:31:26AdrianG:petertodd: spinal cord?
15:31:44petertodd:AdrianG: and because we're not Chameleons - let alone those fancy squids - we have no way of producing high speed data output for it
15:32:10petertodd:AdrianG: hence the invention of paintings, sculpture, books...
15:32:42op_mul:IRC is just a brain-brain shim, with lots of overhead.
15:33:19petertodd:op_mul: youtube is a brain-brain(s) shim
15:34:13AdrianG:petertodd: the squid axon is first of all unmyelinated.
15:34:24AdrianG:it is just macroscopically huge, and easy to stick needles to.
15:34:58wumpus:op_mul: but also very efficient, a few bytes of text can communicate a lot
15:35:01AdrianG:myelinated axon velocities are around an order of magnitude faster.
15:35:04AdrianG:if not more.
15:35:05petertodd:AdrianG: https://www.youtube.com/watch?v=OauXCp8l3QI
15:35:10wumpus:petertodd: yes, an 'out' dataport of similar bandwidth would be very useful
15:35:39AdrianG:petertodd: and?
15:35:45petertodd:oh, and octopus too! https://www.youtube.com/watch?v=sgHjv7Cz34s
15:36:10petertodd:AdrianG: that's your data-out port for visual bandwidth, to correspond to our high bandwidth data in port of eyes
15:36:38kanzure:unfortunately that's like cm^2 resolution
15:38:09op_mul:octopus are smart enough that they'd find a better solution
15:38:52petertodd:op_mul: if only they didn't live underwater - would have invented fire, and thus neurojacked LCD screens
15:39:00kanzure:petertodd: here you can see per-chromatophore resolution https://www.youtube.com/watch?v=VjToyA-iBug
15:39:13AdrianG:http://3blmedia.com/News/Health/Discovery-Quantum-Vibrations-Microtubules-Inside-Brain-Neurons-Corroborates
15:39:21AdrianG:. The recent discovery of warm temperature quantum vibrations in microtubules inside brain neurons by the research group led by Anirban Bandyopadhyay, PhD, at the National Institute of Material Sciences in Tsukuba, Japan (and now at MIT), corroborates the pair’s theory and suggests that EEG rhythms also derive from deeper level microtubule vibrations.
15:39:36AdrianG:the brain is a quantum machine to some extent, we are still figuring how much of it is.
15:39:47petertodd:kanzure: +!
15:40:29AdrianG:kanzure: thats pretty cool.
15:40:55kanzure:plz no microtubule quantum souls
15:41:03kanzure:didn't i ban you anyway why are you here
15:41:19AdrianG:kanzure: i dont think they even imply such a thing.
15:41:55op_mul:petertodd: you really want to be a jellyfish rather than a octopus anyway. numerous eyes, but no brain. go figure that one out.
15:42:05gmaxwell:op_mul: I wish we could grind out test vectors, alas. Infeasable.
15:42:15kanzure:gmaxwell: why is test vector grinding infeasible?
15:44:19AdrianG:kanzure: orch-or is an objective collapse theory, they don't speculate about "souls", etc. it's just a theory to account for the fact that human thought is likely to be non-computable.
15:44:38op_mul:kanzure: in the case I was talking about the vector would be one in 2^127 ish. not likely I'd get that one.
15:45:27AdrianG:besides, we have tons of quantum processes inside our bodies/heads. vision, photosynthesis, nearly all enzymes(or maybe all?)
15:45:40AdrianG:why is it that brain somehow explicitly exempt.
15:46:45wumpus:kanzure: hmm how long will it take to grind 2^127 test vectors. And there's not even a block reward if you succeed :)
15:46:59kanzure:oh, all possible vectors in that space? ok
15:48:18petertodd:wumpus: heh, something I was thinking about the other way, was how you kinda want any consensus-critical VM/scripting language to have only 16-bit at most arithmentic, so you can in fact do 100% coverage test vectors for the primitives
15:48:59petertodd:wumpus: hell, once you're doing 16-bit, might as well go all the way to 8-bit...
15:49:29wumpus:petertodd: hell yeah 8-bit, let's embed a 6502! we can emulate it on transistor level :)
15:49:42petertodd:wumpus: equally, the way EvalScript() was written is shit - should have been a set of individual functions, each with very tightly specified constraints on what part of the stack each function can change
15:49:57op_mul:wumpus: transistors? mechanical relays.
15:50:18petertodd:wumpus: heck, the functions shouldn't touch the stack at all - they should take arguments, corresponding to items on the stack, fail if the stack isn't big enough, and return a tuple of new stack items
15:50:45wumpus:petertodd: but in all fairness, if you can't use modern cryptographic primitives efficiently it's kind of pointless
15:51:13gmaxwell:kanzure: because the probablity of needing a retry is roughy 2^-128.
15:51:29gmaxwell:oh op_mul answered, yea.
15:51:54petertodd:wumpus: oh sure, but those opcodes can be the exception to 8-bit arithmetic :) for other stuff, no sense having the weird intermediary complexity of 32-bit as we have right now
15:52:01wumpus:petertodd: you could of course have a 8-bit processor with secp256k1 coprocessor, but it'd be kind of masochistic without clear gain (ie, you need a well-defined VM, it doesn't really matter that much how much bits the arithmetic is in)
15:52:15gmaxwell:wumpus: 6502 is not as clean as moxie IMO. :P
15:52:59justanothuser:justanothuser is now known as justanotheruser
15:53:31petertodd:wumpus: see, for what script is used for, I suspect you either need ~8-bit numbers, or >128bit numbers, with not all that much in-between (equally, pretty easy to make >8bit OP_ADD macros from 8bit OP_ADDs
15:53:35petertodd:)
15:53:40wumpus:gmaxwell: hah yes far from, and it reacts funnily to undefined opcodes, ie, it can hang the whole system, cause semi-random behavior, and about 25% of the opcode space is undefined so it's lots of fun
15:54:11wumpus:gmaxwell: it's exactly what you don't want for consensus
15:54:15petertodd:wumpus: do a modified 6502 where every undefined op is changed to Halt And Catch Fire, just like bitcoin!
15:54:43gmaxwell:well you really want them to be NOP for softforking. :P
15:55:02petertodd:gmaxwell: obviously we're going to get it right on day one
15:55:38gmaxwell:well it's easy in software to get decode right; where you're not playing stupid games with don't care bits in mux trees.
15:55:42petertodd:gmaxwell: BTW have you noticed how script for PGP is the exact opposite case? you want nothing to be a NOP, because sig validation must always fail in old versions
15:56:15wumpus:petertodd: yes, carry chaining adds is easy, but with multiplications and further you'd quickly wish you'd had chosen something more compact. Not sure how many multiplications there are in consensus code though. Maybe the POW verification?
15:56:26wumpus:petertodd: (apart from the obvious secp256k1)
15:56:34gmaxwell:petertodd: really want you want is the ability to feature test any feature; so that the pubkey can change its operation. If it wants that.
15:56:58petertodd:wumpus: exactly, I suspect there's hardly any modulo crypto - POW verification in future systems should be designed to be implementable with purely shifts in a well-defined way IMO
15:57:02wumpus:petertodd: most is bitwise arithmetic and integer comparisons
15:57:12petertodd:wumpus: doesn't have to be all that efficiently implementable, just defined nicely and clearly
15:57:19gmaxwell:wumpus: pow check divides, and wants a CLZ instruction.
15:57:54wumpus:gmaxwell: right, ugh
15:58:28wumpus:clz is nice and easy though. division is not :(
15:59:32petertodd:wumpus: meh, you only need to implement it once in the VM language :) point of the VM itself is to be simple enough implementing it multiple times in different contexts is doable after all, so you want 100% coverage tests as much as possible
16:02:12wumpus:it's division by a fixed value though?
16:02:30petertodd:wumpus: ?
16:03:47wumpus:well, division by a fixed value is optimizable, can be turned into a multiplication+shift
16:05:06petertodd:wumpus: ah, right, well, my point is regardless of how you need to do it, writing the code itself only needs to be done once, and PoW checks aren't done often enough to matter re: speed
16:05:39gmaxwell:wumpus: 2^256 gets divided by the target, and then there is a simple threshold test.
16:06:42wumpus:petertodd: also true
16:10:17petertodd:however, the other side of this discussion is if you are going to put your consensus rules into a VM for a system, how do you write the actual VM machine code? if you're compiling it from another language, the compiler risks becoming part of the consensus in a sense, so it'd be nice if the machine code was clear enough to write directly. (maybe with some assembler syntactical sugar)
16:10:24wumpus:gmaxwell: but that only happens at retargeting?
16:11:03petertodd:OTOH, another feasible option in a mined system is to do soft-forks by validating against v1 rules and v2 simultaneously, rejecting a block if either ruleset rejects, which means if the compiler accidentally changes something in the v2 rules everything still stays in consensus
16:11:51atgreen:petertodd: forgive me, because I'm new to this, but if everybody is running the same VM machine code, why does the compiler need to be part of the consensus?
16:11:56wumpus:petertodd: let's build it as TTL circuits :P
16:12:00petertodd:(once you have n different rulesets, drop the oldest and hope no-one gets hard-forked...)
16:12:31wumpus:petertodd: but yes, you'd have to deeply verify the compiled version of the VM implementation
16:12:41petertodd:atgreen: in an upgrade a compiler bug may mean the v2 machine code is unintentionally a hardfork
16:12:57petertodd:atgreen: it's only semi-indirectly part of the consensus
16:13:45petertodd:wumpus: I wonder if anyone has ever implemented even RC4 in TTL logic...
16:14:15gmaxwell:wumpus: I suppose in theory it could be per-retarget only. We actually do this on every block in Bitcoin Core.
16:14:35wumpus:petertodd: yes I was about to say FPGA, but then realized the toolchain nightmare there is even worse than compilers.
16:15:02gmaxwell:wumpus: e.g. instead of carrying forward a "effective work" uint256 with the headers; we call GetBlockProof on each one.
16:15:57atgreen:petertodd: I guess I don't understand enough of this yet. I always imagined signed VM binaries being distributed to deal with consensus. Is there a good primer book on BTC?
16:16:14petertodd:atgreen: that's a -dev question, not a -wizards question :)
16:16:23gmaxwell:No, no good book.
16:17:00wumpus:there's a developer documentation on bitcoin.org, but that's aimed at using the system, nothing really aimed at consensus problems
16:17:13petertodd:atgreen: necessary but not sufficient is to read the consensus parts of the Bitcoin Core codebase
16:17:13gmaxwell:atgreen: signed by whom? Conventional application of signing suggests that there is some authority that approves things, which would undermine bitcoin (security reduces to how attack resistant the authority is).
16:17:45petertodd:gmaxwell: signed by a chain of highly unlikely SHA256 partial hash collissions...
16:18:22wumpus:gmaxwell: i don't think that's still the case, unless I'm missing something, https://github.com/bitcoin/bitcoin/blob/master/src/pow.cpp#L88
16:19:27gmaxwell:wumpus: not there, main.cpp pindexNew->nChainWork = (pindexNew->pprev ? pindexNew->pprev->nChainWork : 0) + GetBlockProof(*pindexNew);
16:20:03ajweiss:patch clamping in awake behaving mice is basically the state of the art
16:20:13ajweiss:it's moving into the monkey now
16:20:15kanzure:petertodd: i think a good first step would be "read all of the source code, read all of the bitcoin-development emails, read all of the bitcoin github issues, read all of the bitcoin-wizards logs, read all of the published papers (even the bad ones), and read most of the development subforum on bitcointalk" anything else?
16:20:23ajweiss:humans prolly will never happen, way too invasive
16:21:07ajweiss:they are putting utah arrays for electrophysiology in humans now though
16:21:13petertodd:kanzure: it's notable "read the whitepaper" isn't on your list :)
16:21:19kanzure:i said papers!
16:21:31petertodd:heh
16:21:57kanzure:i suppose also reading other non-bitcoind source code would be useful
16:24:54kanzure:yeah i think deterministic builds would be useful, but you still wont know if v2 by a different compiler will produce the same output anyway (even if the output is deterministic w.r.t that new picked compiler)
16:31:01hightorque:hightorque is now known as shea256
16:33:42wumpus:gmaxwell: right, don't know how I could have missed that ugly division in GetBlockProof
17:10:20c0rw1n:c0rw1n is now known as c0rw|away
17:41:41fanquake_:fanquake_ is now known as fanquake
19:01:08fanquake_:fanquake_ is now known as fanquake
20:37:40Dizzle__:Dizzle__ is now known as Dizzle
21:23:48mquin:[Global Notice] We are about to start rehubbing the network ahead of planned maintenance work. This will cause some netsplits, but should be completed shortly. Thank you for your patience and for flying freenode! :)
21:38:11wiz:wiz is now known as Guest73562
21:41:03jtimon:old conversation but can't resist...
21:41:03jtimon:re: neural networks and learning: neural networks + genetic algorithms is a high level model of how "insticts" (the hardcoded circuits in the brain) evolve, the hard part is the online (within the live of an individual) learning, the strongest quality of humans as a species
21:41:03jtimon:re: unused genes, I think that is quite accepted, say and apple tree with 100x more genetic material than another apple tree...that's strong indication of unused genes. On the other hand is like having unused code that can become used (ie a mutuation in a "go to"). Some people say that can explain things like the Cambrian explosion
21:41:03jtimon:here's a somewhat related video with a guy hacking genotypes without altering the fenotype (by using redundancies in the base triplets -> aminoacid codification): https://www.youtube.com/watch?v=f2JGwCHWFvk
21:42:34kanzure:i suspect that actual "instincts" are going to be a bit more nuanced than hardcoded in circuit topology. probably more like "gradients during development that tend to produce things that generate these signal processing results like x"..
21:55:38Apocalyptic_:Apocalyptic_ is now known as Apocalyptic
21:55:47jcorgan:http://en.wikipedia.org/wiki/Baldwin_effect
21:57:12jcorgan:basically, if learned behavior is adaptive, *the ability to learn* is selected for
22:01:13jcorgan:so over evolutionary times this provides strong feedback to develop behavioral learning capabilities that operate over the timeframe of an individual lifetime
22:01:38jcorgan:("online learning")
22:14:55mquin:[Global Notice] And we are done, thanks for bearing with us. There will be a services outage at around 0000 UTC (just under two hours from this notice) which is expected to last between 15 and 30 minutes.
22:41:41Guest33861:Guest33861 is now known as amiller
23:03:21ajweiss:WHAT IF ALL OF HUMANITY IS STUCK IN A LOCAL MAXIMA?!
23:05:41sipa:then the matrix happens
23:06:05ajweiss:but it's not positive semidefinite... fuck.
23:07:13ajweiss:i thought i was going to get to do dot products in "space warped by someone" but all i ended up with was this stupid fpe
23:07:20gmaxwell:"Neo; a description of the singular value decomposition in the spirit of a creation myth."
23:07:56ajweiss:all the beliefs are linearly dependent!?
23:08:14ajweiss:I WAS PROMISED A FULL RANK UNIVERSE
23:09:06sipa:definitely not a degenerate one
23:15:09ajweiss:that might actually be kinda fun, to do svds on religious texts
23:18:40bassguitarman:bassguitarman has left #bitcoin-wizards
23:48:57gmaxwell:This is fun: https://github.com/kmcallister/launch-code