←2011-01-10 2011-01-11 2011-01-12→ ↑2011 ↑all
00:00:13 * Sgeo turns back to Slate
00:01:33 <j-invariant> ehird: A universal property in category theory holds all extensional information about an objects behavior: the computational object is just a witness for the universal property
00:02:15 <j-invariant> ehird: if we want to do a large scale program it seems necessary to base modules on this: Otherwise a proof might require a computation that spans several modules (and takes hours to compute)
00:02:38 <ehird> j-invariant: i meant the language you thought you had enough knowledge to implement, but OK :P
00:02:41 <j-invariant> ehird: but category theory is not entirely non-computational: So it is very difficult
00:02:53 <j-invariant> when did I ever say I have any clue how to make it :P
00:03:46 <ehird> j-invariant: well i meant presumably you have a "better-than-Haskell" in your head that's like Haskell except better :)
00:03:50 <ehird> and i doubt that's based on category theory.
00:04:15 <j-invariant> oh I don't know if I have any significant ideas to improve haskell
00:04:33 <ehird> j-invariant: don't you have like 10 languages in your head at once :|
00:04:34 <ehird> i do
00:04:40 <ehird> i don't mean improve haskell
00:04:42 <ehird> j-invariant: what i'm saying is
00:04:52 <ehird> j-invariant: what language isn't based on category theory, and would be nice to implement this polynomial stuff in, in your head
00:09:11 <j-invariant> ehird: the silly thing is, THAT is the language I was trying to implement
00:09:15 <ehird> :D
00:09:15 <copumpkin> call your language CCC+SK
00:09:22 <ehird> j-invariant: with the polynomials?
00:09:26 <ehird> j-invariant: hahah lmao that quadrescence post about haskell has got a followup
00:09:27 <ehird> apparently,
00:09:28 <j-invariant> ehird: anyway it's sort of an "algebra system"
00:09:32 <ehird> since the monad laws aren't automatically enforced,
00:09:36 <j-invariant> ehird: except (dependently) typed
00:09:39 <ehird> and since Monad isn't a subclass of Functor,
00:09:44 <ehird> Haskell is pseudo-mathematics
00:09:48 <j-invariant> ehird: but it's not for writing proofs in, just mathematical algorithm
00:09:48 <copumpkin> lol
00:09:49 <ehird> loool
00:10:03 <ehird> hmm he isn't here right now
00:10:06 <ehird> i wonder if he's gone away forever
00:10:07 <ehird> that would be nice
00:10:08 <copumpkin> quadrescence is odd
00:10:17 <ehird> copumpkin: we've had more than our fair share of him.
00:10:18 <copumpkin> his last blog post was ridiculous
00:10:21 <ehird> more than #haskell.
00:10:38 <ehird> copumpkin: which one
00:10:45 <copumpkin> the one about the cargo cult
00:10:46 <j-invariant> Follow-Up to Infamous Post
00:10:48 <j-invariant> ?
00:10:49 <j-invariant> that's old
00:11:02 <ehird> copumpkin: yeah, uh, i'm quoting from the follow up to that
00:11:03 <ehird> lol
00:11:14 <copumpkin> I figiured
00:11:16 <copumpkin> -i
00:11:38 <ehird> i started reading his uhh "book"
00:11:44 <ehird> he seems to think that rewriting languages solve everything
00:11:48 <ehird> *term rewriting
00:12:07 <ehird> 10.12.27:22:32:19 <j-invariant> Quadrescence: can you make any constructive suggestions?
00:12:07 <ehird> 10.12.27:22:33:08 <Quadrescence> rename monad to something else, delete "morphism" from your vocabulary unless you have reason to need it
00:12:07 <ehird> 10.12.27:22:36:27 <j-invariant> Quadrescence: that's not radical enough
00:12:08 <ehird> 10.12.27:22:37:56 <Quadrescence> ok, rename haskell to Fortran++
00:12:46 <copumpkin> lol
00:13:05 <ehird> he kept bugging everyone in here to write for his blog :)
00:14:18 <j-invariant> ehird: seen cryptol?
00:14:22 <ehird> j-invariant: ages ago yes
00:14:27 <ehird> it's ... kinda cool i guess?
00:14:29 <j-invariant> ehird: a bit like that, I guess
00:14:37 <j-invariant> "kinda cool"??
00:14:39 <ehird> :P
00:14:43 <ehird> i didn't look into it much!
00:14:43 <j-invariant> it's great
00:14:51 <j-invariant> except non free...
00:14:56 <ehird> j-invariant: if you're going to write like, a dependent CAS, then i wouldn't try and e.g. implement polynomials in haskell
00:15:00 <j-invariant> the idea is good though: Use dependent types
00:15:05 <ehird> j-invariant: I'd implement a sort-of-symbolic dependent language
00:15:07 <ehird> and do the rest in that
00:15:23 -!- FireFly has quit (Quit: swatted to death).
00:15:25 <copumpkin> dependent types are hard to implement nicely though
00:15:31 <copumpkin> and are still hard to program in
00:15:56 <coppro> ehird: why are you ehird
00:16:23 <ehird> because i am
00:16:36 <ehird> copumpkin: says the agda user
00:16:38 <ehird> coq is soo easy :}}}}
00:16:45 <copumpkin> lol
00:16:54 <copumpkin> they're still hard
00:16:57 <j-invariant> coq and agda are equally useless
00:17:03 <j-invariant> well
00:17:08 <ehird> computers are useless, let's get rid of them
00:17:11 <j-invariant> for the specific thing I want to do
00:17:21 <ehird> j-invariant: you really need your own lang for it i feel...
00:17:27 <ehird> j-invariant: Axiom is kinda close to what you want in fact.
00:17:35 <ehird> as in, a dependent CAS
00:17:43 <pikhq> Hmm. The free ATi drivers seem to be genuinely non-shitty these days.
00:19:05 <ehird> pikhq: i need a unicode cross or something
00:19:06 <ehird> as in X
00:19:13 <ehird> or a hollow square or circle
00:19:16 <ehird> FILL MY NEED
00:21:37 <ehird> pikhq: .
00:21:39 <ehird> j-invariant: have you seen Axiom?
00:22:05 <pikhq> Yup, definitely *insanely* better at video display, and I don't actually have a good OpenGL test case...
00:22:32 <pikhq> But as I clearly don't actually use OpenGL much, moot point. :P
00:23:03 -!- jesus_muppet has left (?).
00:23:40 <j-invariant> ehird: no
00:23:46 <ehird> j-invariant: you perhaps should
00:23:57 <ehird> j-invariant: it's also a gigantic literate program :^)
00:24:42 <ehird> j-invariant: basically Axiom is this crazy developed-since-1970 literate program that implements a strongly-typed, mathematical type hierarchy-based CAS
00:24:53 <ehird> j-invariant: http://upload.wikimedia.org/wikipedia/commons/e/ee/Matrixinmatrix.jpg
00:24:55 <ehird> j-invariant: note the Type: lines
00:25:01 -!- sebbu has joined.
00:25:10 <ehird> j-invariant: fully symbolic, etc.
00:25:25 <j-invariant> ehird: yeah really I should stop being such a hermit and just use existing software
00:25:40 <ehird> j-invariant: oh i am not saying that axiom is the solution
00:25:44 <ehird> j-invariant: i'm saying you should look at it :)
00:26:01 <ehird> j-invariant: http://en.wikipedia.org/wiki/Axiom_(computer_algebra_system)#Documentation click a pdf and start reading :D
00:26:07 <coppro> ehird: k, ignored
00:26:11 <ehird> it's the literate program
00:26:14 <ehird> coppro: oh grow up
00:26:26 <j-invariant> why did coppro ignore?
00:26:36 <ehird> because he's even more childish than I am
00:26:39 <coppro> because this channel is better without ehird
00:26:40 -!- ehird has changed nick to eherd.
00:26:46 <eherd> i'm a herd of Es
00:26:59 <eherd> *this channel is almost silent without
00:27:07 <eherd> and the bits that aren't silent, mostly incomprehensible one-sided conversations
00:27:32 <eherd> j-invariant: I think there are probably very few systems developed since the early 70s
00:27:42 <eherd> that are still in active (non-maintanence) development today
00:27:50 <coppro> eherd: changing your nick is not sufficient
00:27:54 <eherd> *maintenance
00:28:00 -!- sebbu2 has quit (Ping timeout: 240 seconds).
00:28:09 <eherd> coppro: my ident hasn't changed
00:28:14 <eherd> coppro: so if it's based on nickserv: HI.
00:28:28 -!- eherd has changed nick to ehurd.
00:28:30 <pikhq> Also, OMFG kernel mode setting.
00:28:31 <j-invariant> The Axiom project focuses on the "30 Year Horizon". The primary philosophy is that Axiom needs to develop several fundamental features in order to be useful to the next generation of computational mathematicians. Knuth's literate programming technique is used throughout the source code. Axiom plans to use proof technology to prove the correctness of the algorithms (such as Coq and ACL2).
00:28:35 <ehurd> coppro: there's no possible way i'm still ignored now
00:28:42 <coppro> lol literate programming
00:28:44 <j-invariant> wow this is interetsing
00:28:47 <coppro> I haven't not heard zzo38 today
00:28:56 <pikhq> It makes my framebuffer actually use the native resolution of the display!
00:28:57 <pikhq> :D
00:29:03 <ehurd> OTHER THINGS ZZO38 LIKES: BREATHING
00:29:46 <j-invariant> ehurd: this is interesting actually, gonna check it out
00:29:57 <ehurd> j-invariant: "For example, Axiom’s integrator gives you the an- swer when an answer exists. If one does not, it provides a proof that there is no answer."
00:30:13 <ehurd> *answer
00:30:36 <ehurd> j-invariant: "A function can take a type as argument, and its return value can also be a type. For example, Fraction is a function, that takes an IntegralDomain as argument, and returns the field of fractions of its argument."
00:30:47 <ehurd> j-invariant: i think this is more like \Omega{}mega than Agda, though
00:30:54 <ehurd> not sure though
00:32:12 <j-invariant> haha
00:32:15 <j-invariant> omegamega is so stupid
00:32:53 <coppro> ehurd: so apparently you have a u now
00:33:19 <ehurd> j-invariant: is it?
00:33:21 <ehurd> coppro: oh indeed
00:33:33 <ehurd> coppro: it's obvious that your ignore didn't fail, btw.
00:33:45 <j-invariant> ehurd: it's just crazy, like reimplementing everything at multiple levels?
00:33:53 <ehurd> j-invariant: well i might be wrong
00:33:55 <ehurd> j-invariant: i just meant
00:34:01 <ehurd> j-invariant: i don't think that axiom lets you do actual dependency
00:34:04 <ehurd> j-invariant: i.e. pi types
00:34:08 <ehurd> j-invariant: sigma maybe
00:34:18 <ehurd> j-invariant: i don't know omegamega, so i wasn't trying to draw a strong comparison.
00:35:04 -!- poiuy_qwert has joined.
00:35:05 <j-invariant> ehurd: it's probably dynamically checking types
00:35:10 <ehurd> j-invariant: no i do not think so
00:35:13 <ehurd> j-invariant: it's strongly-typed
00:35:24 <ehurd> j-invariant: which volume are you reading?
00:35:25 <ehurd> or are you not
00:36:30 <ehurd> j-invariant: ?
00:36:49 <j-invariant> what's this "30 year horizon"?
00:37:08 <copumpkin> it's neither sigma, nor pi, nor dynamically checking
00:37:16 -!- drakhan has quit (Quit: Wychodzi).
00:37:30 <j-invariant> copumpkin: owhat are you talking about? :D
00:37:36 <copumpkin> omega
00:38:57 <j-invariant> I was talking about axiom
00:40:01 <j-invariant> I am seeing universal properties and categories everywhre
00:40:29 <coppro> categories are everywhere
00:40:36 <copumpkin> so are universal properties!
00:40:43 <j-invariant> coppro: I realized that divisibility forms a category
00:40:49 <copumpkin> it's an order
00:40:59 <copumpkin> any partial order can be made into a category
00:41:04 <coppro> ^
00:41:09 <ehurd> j-invariant: it's described at the top
00:41:28 <ehurd> j-invariant: so which volume are you reading
00:41:57 <j-invariant> divisibility is more special than any old partial order
00:42:01 -!- pikhq has quit (Read error: Operation timed out).
00:42:43 <copumpkin> most partial orders are more special than any old partial order :P
00:42:48 <j-invariant> copumpkin: what
00:42:51 <ehurd> j-invariant: helloooo
00:42:52 <copumpkin> in fact, we can set up a partial order of partial orders
00:42:54 <copumpkin> by specialness
00:43:08 <ehurd> copumpkin: oh you crafty
00:43:14 <coppro> :D
00:43:29 <ehurd> j-invariant: how many more times should i ping you
00:45:02 <ehurd> j-invariant:
00:45:05 <j-invariant> ???
00:45:29 <ehurd> j-invariant: which volume are you reading
00:45:30 <ehurd> of Axiom
00:45:53 <j-invariant> I'm not
00:47:40 <ehurd> j-invariant: you said about the 30 year thing
00:47:43 <ehurd> but that's mentioned in the book
00:47:59 <ehurd> j-invariant: http://axiom-developer.org/axiom-website/bookvol0.pdf is the introduction book which contains all the interesting info
00:48:06 <ehurd> vs. all the implementation details and code in the rest more or less :P
00:48:16 <ehurd> j-invariant: contains the general overview of the system and cool stuff etc.
00:48:54 <ehurd> well ok there's more but
00:49:09 <ehurd> j-invariant: DID I MENTION: category theory plays a large part in axiom
00:49:11 <ehurd> IIRC
00:49:57 <ehurd> although i don't know that for _sure_
00:52:25 <coppro> yes you are
00:55:55 <ehurd> j-invariant: are you reading it? :p
00:56:21 <ehurd> j-invariant: i think it's actually surprisingly close to what you were talking about wanting, from reading this volume 0
00:57:00 <ehurd> j-invariant: heh it uses categories to mean something other than what category theory means by them
00:57:02 <ehurd> i think
00:59:31 <ehurd> i think j-invariant fell asleep
01:00:49 <j-invariant> hii
01:01:04 <coppro> j-invariant: are you kirby all of a sudden?
01:01:15 <j-invariant> no
01:01:19 <coppro> ok
01:02:39 <j-invariant> ehurd: compare:
01:02:51 <j-invariant> (10 http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c6ps2
01:02:54 <j-invariant> (1)
01:03:09 <ehurd> j-invariant: what's 2 :P
01:03:09 <j-invariant> (2) http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7ks6
01:03:24 <j-invariant> exactly the same thing except one guy said "prime numbers" and the other guy said "halting problem"
01:03:28 <ehurd> lol
01:03:40 <j-invariant> ZOMG ALAN TURING. MUST UPVOTE
01:03:49 <j-invariant> fuckin pathetic :/
01:03:53 <ehurd> not worth getting worked up over!
01:03:57 <ehurd> now read the axiom introduction, it's really interesting :P
01:04:08 <ehurd> i'm only on page 13 and i think it's cool
01:04:09 <j-invariant> okay, il be back in a moment
01:04:21 -!- j-invariant has quit (Quit: leaving).
01:09:15 <ehurd> copumpkin: you have strayed into a deadly trap
01:09:22 <copumpkin> ?
01:09:51 <ehurd> copumpkin: being the only active person who doesn't have me ignored >:)
01:09:56 <ehurd> now watch as i force you to test my awful software
01:09:58 <ehurd> mwahahahahahahaha
01:10:08 <copumpkin> lol
01:10:21 <copumpkin> nah, I'm busy
01:10:26 <ehurd> busy testing, yes
01:10:31 <ehurd> my god, it's 381 lines
01:10:32 <ehurd> how did that happen
01:12:51 -!- j-invariant has joined.
01:17:11 <Sgeo> http://www.reddit.com/r/programming/comments/cw06e/the_mercury_language_take_prolog_speed_it_up/c0vpmgg
01:18:28 <coppro> Sgeo: tell me how ehird bashes it ok
01:18:41 <Sgeo> What I linked to was a joke
01:18:58 <Sgeo> Although yeah, I'm looking at Mercury
01:18:59 <j-invariant> Sgeo: why does it say "Yes"?
01:19:27 <ehurd> j-invariant: it's funny because prolog impls print yes
01:19:37 <ehurd> Sgeo: prince xml was written in mercury, btw
01:19:53 <ehurd> and is a very advanced, complex program, sold for lots of money, with a small binary size
01:20:00 <Sgeo> o.O
01:20:03 <ehurd> converts XML/HTML + CSS into PDF, basically, with very high quality
01:20:11 <ehurd> http://princexml.com/
01:20:16 <Sgeo> coppro, ehurd is not bashing Mercury.
01:20:17 <ehurd> proof that the language can do shit, at least
01:20:17 <j-invariant> ehurd: no they don't?
01:20:22 <coppro> Sgeo: impossible
01:20:27 <ehurd> j-invariant: yes they do
01:20:30 <Sgeo> This sort of reaction is what got me interested in Factor so long ago
01:20:34 <ehurd> j-invariant: well...
01:20:34 <coppro> he didn't mention it first
01:20:36 <ehurd> j-invariant: ok they actually don't
01:20:36 <coppro> so it can't be good
01:20:38 <ehurd> but they print No!
01:20:40 <ehurd> and that's what matters
01:20:43 <j-invariant> ehurd: that's some stupid SWI prolog thing
01:20:49 <j-invariant> oh wait no it's not
01:20:59 <ehurd> Sgeo: well i wouldn't want to write an actual program in Mercury myself.
01:21:10 <ehurd> logic programming doesn't gel with me.
01:21:27 <ehurd> but the fact that it has no cut or side-effects is nice :)
01:21:58 <ehurd> j-invariant: do you want to try out the initial cled prototype :D
01:22:14 <j-invariant> yes
01:22:36 <ehurd> j-invariant: http://www.vjn.fi/pb/p7989249361.txt
01:22:39 <ehurd> j-invariant: just run as: python cled.py
01:22:48 <ehurd> try not to defocus the window afterwards, it doesn't like that
01:23:06 <ehurd> j-invariant: most of the underlying stuff is written but not exposed as the ui... but it can manipulate integer argument lists!
01:23:15 <Sgeo> The tutorial could use some work
01:23:33 <ehurd> j-invariant: quick rundown: lilac background means it's selected. j and k move around the current active object, selecting children of it, showed by highlighting with lilac.
01:23:50 <ehurd> j-invariant: e descends into the currently selected object. d ascends upwards from any objects.
01:24:04 <ehurd> j-invariant: if you descend into an integer, then you can rewrite the integer by typing a new one and hitting <return> or d.
01:24:26 <j-invariant> mutable inteegers...
01:24:27 <ehurd> j-invariant: to add a new element to a list (only in . -> things now (they're called examples)), press = to insert after the current element. + (shift-=) to insert before.
01:24:29 <ehurd> j-invariant: no
01:24:31 <ehurd> j-invariant: it's an editor
01:24:40 <ehurd> j-invariant: it's like seeing 42, pressing backspace twice, and typing a new on
01:24:40 <ehurd> e
01:24:44 <ehurd> it's an AST-based code editor
01:24:52 <ehurd> j-invariant: press x to delete an argument.
01:25:07 <ehurd> j-invariant: now, if you do =, it's "?", because it's waiting to decide what type you'll put in based on your input
01:25:09 <ehurd> this is called a box
01:25:16 <ehurd> if you d before entering a type, you'll see an ugly red ? in your program
01:25:21 <ehurd> these are call boxes, but they should be called holes.
01:25:30 <ehurd> they're basically just things that need objects but haven't filled in yet
01:25:36 <j-invariant> nice it works!
01:25:39 <ehurd> if you try and delete the output of an example, or all the inputs, you just get a single box instead
01:25:44 <ehurd> that's pretty much it for now
01:25:48 <ehurd> note that if you ascend too far everything breaks
01:25:59 <ehurd> oh
01:26:06 <ehurd> and "r" replaces the current selected thing with a box
01:26:11 <ehurd> which will probably be useful somehow!
01:26:17 <j-invariant> it's possible to descend too far??
01:26:21 <ehurd> j-invariant: no
01:26:23 <ehurd> but you can ascend too far
01:26:37 <ehurd> if you try and go above the list of examples
01:27:03 <ehurd> j-invariant: oh and Ctrl+S prints the current program to stdout
01:27:10 <ehurd> note that if you have boxes, this'll be an invalid program
01:27:38 <j-invariant> cool
01:28:10 <ehurd> oh and you should be able to enter [ into a hole instead of a digit or -, to get a list
01:28:12 <ehurd> but that doesn't work yet :)
01:28:31 <ehurd> j-invariant: incidentally, the programs are pretty-printed.
01:28:46 <ehurd> so for instance it outputs
01:28:47 <ehurd> depth of first ~ {. 0 -> 0
01:28:47 <ehurd> . 5 -> 0 }
01:28:48 <ehurd> depth of first ~ {:. [[1 2] [3 4]] -> 2
01:28:50 <ehurd> : [1 2] -> 1
01:28:52 <ehurd> :. [[[1 2 3] 4] 5] -> 3
01:28:54 <ehurd> : [[1 2 3] 4] -> 2}
01:28:56 <ehurd> depth of first ~ is list?; cons; car; cdr; succ; 0
01:28:58 <ehurd> with the right alignment everywhere
01:29:00 <ehurd> (that isn't generated by the code, but i know it does it properly :))
01:29:06 <ehurd> (or wait i think i did feed it in at some point. anyway.)
01:30:24 <ehurd> j-invariant: i'm not going to be able to convince you to read the first volume of axiom, am i :D
01:30:59 -!- azaq23 has quit (Ping timeout: 255 seconds).
01:33:06 <ehurd> ok i'll stop bugging you about it
01:34:18 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:35:16 -!- azaq23 has joined.
01:37:37 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:40:18 <j-invariant> ehurd: I am going to read it
01:40:25 <ehurd> j-invariant: \o/
01:40:26 <myndzi> |
01:40:26 <myndzi> |\
01:40:46 <ehurd> j-invariant: I don't think it does do type-checking at runtime... that would be lame anyway
01:40:54 <ehurd> Also I like the idea of it more if it doesn't :P
01:41:14 <ehurd> j-invariant: lol, you declare a module system like you do types, and even structures (like ring)
01:41:17 <ehurd> it's all the same mechanism
01:41:43 <ehurd> "Because the argument of Matrix is required to be a Ring, Axiom will not build nonsensical types such as “matrices of input files”."
01:41:47 <ehurd> brb implementing matrices of input files
01:41:59 <ehurd> j-invariant: yep, just read, it typechecks at compile times
01:42:01 <ehurd> *time
01:43:18 <ehurd> *just read that it
01:44:06 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
01:45:10 <j-invariant> ehurd: wow, both great
01:45:14 <j-invariant> that's good
01:45:44 <ehurd> i'm only on page 21... wonder how much mindbending stuff is in the next 1198 pages
01:45:45 -!- poiuy_qwert has joined.
01:45:59 <ehurd> erm actually page 40
01:46:04 <ehurd> but 21 in the actual book
01:46:24 <ehurd> pretty huge book, considering this is only volume 0
01:46:32 <ehurd> i wonder if you can buy a complete set bound in leather that takes up a whole shelf
01:47:05 <ehurd> j-invariant: btw here's a link, mostly for my logreading benefit since i had to find it again before: axiom-developer.org/axiom-website/bookvol0.pdf
01:47:08 <ehurd> *http://axiom-developer.org/axiom-website/bookvol0.pdf
01:49:30 <ehurd> j-invariant: this seems to do a lot of stuff as polynomials, lol
01:49:39 <ehurd> i think you've accidentally reinvented this
01:50:02 <ehurd> j-invariant: mind you, i'd still like to see what you come up with
01:50:39 <ehurd> "The function factor can also be applied to complex numbers but the results aren’t quite so obvious as for factoring integer:
01:50:39 <ehurd> 144 + 24*%i
01:50:39 <ehurd> 144+24 i
01:50:41 <ehurd> Type: Complex Integer"
01:50:45 <ehurd> i smell a documentation bug
01:52:12 <Sgeo> "Chapter XXX describes these modules in
01:52:12 <Sgeo> more detail."
01:53:52 <ehurd> Sgeo: hur hur it's funny because ex
01:53:53 <ehurd> sex
01:53:59 <Sgeo> No
01:54:03 <ehurd> what then
01:54:12 <Sgeo> I'm just complaining about the incompleteness of the documentation
01:54:35 <ehurd> how is that incomplete
01:54:47 <ehurd> Sgeo: ?
01:55:02 <ehurd> Sgeo: it's a book, what's the issue
01:55:07 <Sgeo> Those XXXs are all over the place
01:55:15 <ehurd> Sgeo: It's a number, isn't it.
01:55:16 <ehurd> 30.
01:55:19 <Sgeo> No
01:55:29 <ehurd> I assume you're talking about Axiom?
01:55:36 <Sgeo> I'm talking about Mercury
01:55:38 <ehurd> Oh.
01:55:42 <ehurd> Then I don't care! Yay!
01:55:50 <ehurd> j-invariant: should i make my own language
01:55:58 <coppro> what about it
01:57:15 -!- Wamanuz has quit (Ping timeout: 240 seconds).
01:57:18 <ehurd> j-invariant: semi-dependent-typing, in that it has kinds and metakinds etc. etc. etc., and kinds are automatically derived from normal data types (with the same name and constructors), /but/ nothing crosses the :
01:57:22 <ehurd> j-invariant: i.e., no pi types
01:57:29 <ehurd> because
01:57:32 <ehurd> that sounds easier to implement :D
01:57:40 <ehurd> bye
01:57:41 -!- ehurd has quit (Remote host closed the connection).
02:01:19 -!- poiuy_qwert has quit (Read error: Operation timed out).
02:01:26 -!- luatre has quit (Remote host closed the connection).
02:04:13 -!- copumpkin has joined.
02:06:16 -!- poiuy_qwert has joined.
02:11:20 -!- cheater99 has joined.
02:24:06 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
02:26:26 -!- poiuy_qwert has joined.
02:27:38 <j-invariant> Formal proof of correctness is not only tedious, time-consuming, and outlandishly expensive, it's also not necessarily effective! People commit errors when attempting a formal proof. There is no fool-proof way of determining if a proof is correct or not. -- JeffGrigg
02:28:30 <coppro> uh yes there is
02:28:36 <coppro> clearly he doesn't know what a formal proof is
02:29:42 <copumpkin> lol
02:30:11 -!- oerjan has joined.
02:30:21 <coppro> oerjan!
02:30:34 <oklopol> morning orejan
02:30:37 <copumpkin> j-invariant: wait what?
02:30:43 <copumpkin> j-invariant: it says "adjunction" posted that
02:30:43 <oklopol> oerjan
02:30:50 <copumpkin> but adjunction clearly doesn't think that
02:30:54 <copumpkin> because I've seen other things he posted
02:32:12 * copumpkin is confused
02:33:24 <oerjan> ¡coppro, oklopol
02:35:25 <copumpkin> maybe j-invariant is adjunction
02:38:35 * Sgeo needs MORE
02:38:38 <Sgeo> MORE LANGUAGES
02:38:39 <Sgeo> MORE
02:38:43 * Sgeo goes nuts
02:38:54 <j-invariant> Sgeo: learn all languages at once: Oz
02:39:04 <Sgeo> I find myself interested in the concept of dataflow programming
02:39:15 <Sgeo> j-invariant, is there still any work being done on Oz?
02:39:25 <Sgeo> Last ... thingy was 2008
02:40:44 <oklopol> "<elliott> j-invariant: yeah there is basically no way you could do recursive functions (only flow control other than branching really) with a stupid search like that" <<< actually i have a good feeling about another way to do recursion stuff, although the idea is so simple i'll want to try it before saying it might work
02:41:00 <oklopol> but i'm usually right, like i was right about demolishing!
02:41:11 <oklopol> ...wait
02:41:27 <j-invariant> oklopol: i am incapable or ferror
02:42:04 <Sgeo> demolishing/
02:44:36 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
02:46:01 <j-invariant> http://en.wikipedia.org/wiki/Monad_%28category_theory%29
02:46:14 -!- poiuy_qwert has joined.
02:46:34 <oklopol> "<elliott> 21:29 cdsmithus: EvanR-work: It's pretty easy to see. Just enumerate all the 0-length strings (finitely many), then all the 1-length, then the 2-length, and so on. Every finite string has some length, and will be reached eventually" <<< this doesn't work
02:48:25 <oerjan> um yes it does
02:48:34 <oerjan> as long as your alphabet is finite
02:48:35 <cheater99> PENIS
02:49:09 <oerjan> if your alphabet is countably infinite, though...
02:49:32 <cheater99> you can still enumerate it.
02:49:35 <oerjan> yes.
02:49:55 <Sgeo> "Googles Go language uses a quicksort, though this is considered by some to be a bug.
02:49:56 <Sgeo> "
02:49:57 <Sgeo> lolwhat?
02:50:04 <cheater99> length + sum(ord(chr)) < n
02:50:22 <Sgeo> Ah
02:50:22 <oerjan> that would be one way
02:51:13 <Sgeo> "Somewhat typical of PHPs API, there are actually thirteen different built-in array sorting functions"
02:51:55 <cheater99> what is that about
02:52:04 <oerjan> <j-invariant> oklopol: i am incapable or ferror <-- so, which one is it?
02:52:18 <cheater99> oerjan: it's both.
02:53:48 <oerjan> Sgeo: quicksort has bad worst-case behavior...
02:54:03 <Sgeo> I said "Ah" after reading the compaints
02:55:01 <oerjan> yeah, "Ah" is such a heavily information-loaded word
03:01:15 -!- j-invariant has quit (Quit: leaving).
03:03:02 <oklopol> "<elliott> oklopol likes Python for, like, totally different reasons to everyone else." <<< the reason i like python is i used to like it, and used it so much it's soooooooooooo easy now. this is also why my programs are so retarded in syntax and how i do things locally, i actually don't think at all, i just write
03:03:41 -!- quintopia has quit (Ping timeout: 255 seconds).
03:04:35 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
03:06:13 -!- poiuy_qwert has joined.
03:06:29 <oklopol> '<j-invariant> Why don't we get people that just learned thermodynamics and join every fucking energy discussion with "YYEAH BUT YOU CANT CREATE INFINITE FREE ENERGY SO WHY BOTHER WITH WINDMILLS?"' xD
03:06:42 -!- quintopia has joined.
03:07:36 <Sgeo> oklopol, you like Python for the same reason I do!
03:07:50 <Sgeo> I am more practiced with Python than any other language
03:10:06 <variable> oerjan, Sgeo Java has some weird behavior. <= 7 elements it uses insertion sort and > 7 it uses quicksort
03:12:40 <oerjan> variable: well that's not so weird
03:12:56 <oerjan> it's well known that simpler sorts are faster for very short lists
03:13:07 <coppro> also pure quicksort?
03:13:09 <variable> oerjan, actually it happens to be optimal for other reasons as well
03:13:09 <coppro> no introsort?
03:13:11 <variable> coppro, erm no
03:13:17 <variable> I meant to say "modified quicksort"
03:13:33 <variable> and the number 7 isn't arbitrary either
03:14:06 <oerjan> well i'd assume without evidence that the <= 7 case is also used for sorting sublists in the quicksort?
03:14:25 <variable> oerjan, yes
03:14:54 * variable gets the source - hang on
03:16:06 <variable> oerjan,
03:16:29 <variable> Java's sort is based on http://portal.acm.org/citation.cfm?id=172710
03:17:46 <oklopol> "<oerjan> um yes it does" "<oerjan> as long as your alphabet is finite" <<< also the algorithm of doing nothing works. (as long as the alphabet is empty)
03:18:09 <oerjan> no bloody abstract
03:18:10 <Sgeo> How long until we have non-Python languages running on CPython?
03:18:28 <oerjan> oklopol: BRILLIANT
03:18:40 <Sgeo> Atomo runs on Haskell's whatever, a bunch of stuff runs on Erlang's VM, I'm pretty sure there's Ruby stuff....
03:18:46 <Sgeo> JVM and .NET are obvious
03:19:18 <variable> oerjan, Sgeo btw - I was talking about an array of ints
03:19:28 <variable> it uses something else (I think merge sort) for objects
03:19:35 <oerjan> variable: huh
03:19:47 <oklopol> oerjan: if you'd read context from 64 hours ago, you'd've known alphabet was just specified countable
03:20:01 <variable> oerjan, int[] array is sorted differently than Integer[] array
03:20:03 <oerjan> oklopol: O KAY
03:20:54 <oerjan> variable: i guess they are assuming comparing two elements is so much more expensive then that it affects things...
03:21:17 <oklopol> there should be a nonstandard set theory: \exists set S such that S^N is finite, but S is nonempty
03:21:28 <oklopol> (from nonstandard analysis, although that was probably clear)
03:21:38 <variable> oerjan, I don't remember exactly what they use to sort Objects. I __think__ its merge sort
03:23:15 <oerjan> variable: hm. i could see why they'd want to use a different cutoff but not why they'd switch to another sort for large arrays entirely
03:24:15 <variable> oerjan, I'm no Java expert - I just spent one semester too long learning Java :-\
03:24:47 <oerjan> well me neither
03:24:59 <oerjan> i haven't even learned it properly
03:25:24 <oklopol> i know everything about java, but i still can't understand love
03:26:29 <oerjan> I love the java jive and it loves me
03:28:14 <oklopol> i hate the halting problem
03:28:40 <oklopol> it's like the least interesting piece of math ever, and everyone thinks they understand what it means on a deep philosophical level
03:29:47 <oklopol> it should be stripped of its popularity by force
03:30:26 <oklopol> oerjan so
03:30:33 <oerjan> ...it is the basis of most other undecidability theorems, isn't it
03:30:35 <oklopol> did you catch my inverse semigroup stuff
03:30:36 <oklopol> :D
03:30:40 <oerjan> NO
03:30:43 * oerjan runs away
03:30:45 <oklopol> oerjan: it's a very important theorem, yes
03:31:21 <oklopol> it shouldn't be uninvented or anything
03:31:28 <oklopol> there's tons of interesting stuff *on top of it*
03:32:48 <oklopol> it's the popularity that annoys me
03:33:03 <oklopol> oh, well right, it's not actually the *least* interesting piece of math ever, maybe :D
03:33:44 <oklopol> but it's not a particularly interesting theorem
03:34:44 <oklopol> and i always hate it when someone tries to add ugly technicaly philosophy to a beautiful and pure formal mathematical theorems
03:34:54 <oklopol> *technical
03:35:26 -!- variable has quit (*.net *.split).
03:35:35 -!- Slereah has quit (*.net *.split).
03:35:39 -!- jix has quit (*.net *.split).
03:35:49 <oklopol> + more random adjectives before the terms why not
03:35:51 <coppro> it's like listening to a philosophy prof talk about math
03:35:58 <coppro> it's almost actually painful
03:36:40 <oklopol> oerjan: i proved that in an inverse semigroup (so *unique* y such that x = xyx, y = yxy), idempotents form a semilattice
03:37:42 <oklopol> coppro: i haven't actually heard, but my dad studied philosophy, and he could recite these completely meaningless statements he'd learned for class that were some sort of explanations for the achilles paradox etc
03:37:44 <oerjan> mhm
03:37:51 -!- Slereah has joined.
03:37:51 -!- jix has joined.
03:38:16 <oklopol> well
03:38:24 <oklopol> maybe they weren't meaningless originally, but my dad butchered them completely :D
03:38:54 -!- calamari has quit (Quit: Leaving).
03:39:02 -!- variable has joined.
03:40:11 <oklopol> but in any case, who the fuck needs to learn about the achilles paradox... if i started studying philosophy, and i realized i was listening to a *lecture* about that retarded thing, i'd probably take a good look in the mirror, and kill everyone.
03:40:42 <oklopol> oerjan: THAT'S NOT ALL THOUGH
03:40:46 <oklopol> ...about inverse semigroups
03:40:48 <oerjan> um if you don't know any calculus and stuff then it probably _is_ somewhat mysterious
03:42:24 <oklopol> yes, possibly; now consider an arbitrary congruence on an inverse semigroup
03:42:34 <oklopol> (in the usual semigroup sense)
03:42:49 <oklopol> (although it does turn out that the quotient is an inverse semigroup)
03:42:59 * Sgeo surrenders and goes to install Cygwin
03:43:33 <oklopol> (that's not actually trivial i think, you need lallement's lemma, which says for all idempotents in the image, there is an idempotent in the preimage)
03:43:46 <oklopol> let's call this congruence p
03:44:37 <oklopol> we define x p_{min} y <=> \exists e \in E_S: xe = ye, x^-1 x p e p y^-1 y
03:45:04 <oklopol> that's an equivalence relation, since idempotents commute
03:45:19 <oklopol> wait...
03:45:42 <oklopol> let that be true for xe = ye, yf = zf
03:45:55 <oklopol> then i was thinking xef = yef = yfe = zfe = zef
03:46:05 <oklopol> but is the second thing true
03:46:23 <oklopol> oh well of course it is
03:46:44 <oerjan> what's E_S
03:46:49 <oklopol> because we know y^-1 y p f, and therefore e p f, and therefore also x^-1 x p f
03:46:51 <oklopol> oh sorry
03:46:52 <oklopol> idempotents
03:46:56 <oklopol> forgot to define
03:47:24 <oklopol> so yeah that's an eq relation, but here's the fun thing: that's actually the minimal congruence with the same trace
03:47:45 <oerjan> there's some = missing up there
03:47:54 <oklopol> where?
03:48:04 <oerjan> x^-1 x p e p y^-1 y
03:48:07 <oklopol> p is a relation
03:48:14 <oklopol> i mean
03:48:15 <oklopol> congruence
03:48:24 <oerjan> oh
03:48:37 * oerjan somehow started reading it as an idempotent
03:48:38 <oklopol> it was rho in the lecture notes, and i'm copy pasting from my head
03:48:51 <oklopol> the definition anyway
03:49:06 <Ilari> Hmm... Does ShowIP have some subtle bias: IPv4 addresses get shown as red and IPv6 addresses as green... :-)
03:49:06 <oklopol> so for instance, consider the trivial congruence S x S
03:49:13 <oklopol> let that be p
03:49:33 <oklopol> then, p_{min} is actually the minimal congruence q such that S/q is a group
03:49:49 <oklopol> because a quotient is a group if and only if idempotents are identified
03:50:18 <oklopol> because an inverse semigroup is a group iff it has exactly one idempotent
03:51:14 <oklopol> to prove that \exists e \in E_S: xe = ye, x^-1 x p e p y^-1 y is a congruence, you prove that it's a left congruence and that it's a right congruence separately, and that's actually kinda technical
03:51:23 <oklopol> because you have to guess the idempotent
03:52:11 <oklopol> but so let x p_{min} y, and e be the proof; consider xz vs. yz and the idempotent z'ez where ' is inverse
03:53:04 <oklopol> then xzz'ez = xezz'z = xez = yez = yezz'z = yzz'ez
03:53:12 <oklopol> aaaaaaand umm
03:53:15 <oerjan> oklopol: i don't think i'm capable of concentrating enough to follow this stuff
03:53:23 <oklopol> alright :P
03:53:27 <oklopol> did you get the actual theorem tho?
03:53:42 <oklopol> i think that's really nice even if i skip the proof
03:54:12 <oklopol> that for each congruence p, there's minimal p_{min} with the same trace, with that definition i gave
03:54:16 <oklopol> fuck
03:54:21 <oklopol> trace = what idempotents are identified
03:54:33 <oklopol> i'm not very organized :\
03:54:48 <oerjan> that's hard too because i don't have an intuition for how "inverses" are supposed to behave
03:55:35 <oerjan> hm wait is x^-1 x = x x^-1 always?
03:55:46 <oklopol> like in groups, except that there are multiple 1-elements.
03:55:51 <oklopol> is my intuition
03:55:54 <oerjan> ok
03:56:08 <oklopol> x^-1 x = x x^-1 <<< no, but both are idempotent
03:56:45 <oklopol> idempotents commute, so often you just care about the fact you have *some* idempotent somewhere
03:57:01 <oklopol> should give examples maybe, have none...
03:58:59 <oklopol> it took me quite a while to get a grip on how inverse semigroups work
03:59:34 <oklopol> so i don't exactly blame you if you have no ability to follow the stuff, mainly i wanted to advertise properties of inv semigroups... :D
04:00:09 <oklopol> like that p_{min} thing, which is unique to inv semigroups in the semigroup monoid group etc family
04:00:16 <oklopol> (afaik!)
04:00:36 <Ilari> Fun use for ShowIP. Visit all sorts of IPv6-related sites and see which ones support IPv6.
04:00:40 <oklopol> (erm i mean of course it's true for groups......)
04:00:45 <oklopol> (but yeah)
04:01:28 <oklopol> alright my alarm clock is tickling.
04:02:47 <oerjan> Ilari: ooh, i guess we're just a week or two from exhaustion now?
04:03:11 <oerjan> or has it already happened
04:03:23 <oerjan> (that APNIC allocation thing)
04:03:34 <oklopol> algebra is so damn sexy really, if i was any good at it, i might even consider doing my phd out of that stuff
04:04:08 <oerjan> oklopol: tickling alarm clock?
04:04:38 <oklopol> well i mean i'm awesome at it but i don't really have an intuition on what constitutes as interesting new research
04:04:49 <Ilari> Not yet... Projections are turn of the month... But APNIC can justify allocation at any moment.
04:05:22 <oklopol> of course, i suppose you should always try to follow the road of *actually solving problems*
04:05:35 * oerjan imagines bosses at APNIC headquarters sitting rubbing their hands and cackling maniacally
04:05:43 <oklopol> oerjan: tickling sounds like it could mean some sort of beeping imo
04:05:55 <oklopol> and i already once used that word wrong in your presense
04:06:04 <oklopol> presence
04:06:11 <oerjan> oklopol: well there are already vibrating cell phones...
04:06:28 <oklopol> :D
04:06:37 <oerjan> but a tickling alarm clock would sort of have to be _in_ your bed...
04:06:51 <oklopol> my bed is too full of stuff to fit an alarm clock
04:06:54 <oerjan> well or it could be a wrist watch i guess
04:07:04 <oerjan> oklopol: do you have room to sleep :D
04:07:28 <oklopol> well, almost!
04:07:37 <oklopol> i should consider cleaning up this place at some poitn
04:07:39 <oklopol> *point
04:07:45 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaa
04:07:49 <oerjan> don't remind me
04:08:17 <oklopol> it's been about a week and i haven't moved any of the stuff, and since i moved from a twice bigger apartment, there's suddenly huge amounts of stuff :D
04:08:33 <oerjan> oh right
04:10:16 <oklopol> these student apartments are so crappy i'm actually considering applying for a better one, mainly due to the facts i'm never going to be able to eat food if i have to prepare it in the presence of other people, everyone hears me watch porn at night and the fact the refrigerator wakes me up at 4 am ever morning
04:10:50 <oklopol> the last one is actually not annoying at all, i just wanted to mention it :D
04:11:05 -!- azaq23 has quit (Ping timeout: 255 seconds).
04:11:56 <oklopol> but a place full of students is like the worst place to have thin walls, at 4 am on a wednesday, it's not rare to feel someone suddently yell "WHAT THE FUCK MAN?!?"
04:12:04 <oerjan> argh
04:16:37 <Ilari> It appears most dedicated IPv6 sites have IPv6 addresses... But some don't.
04:19:46 <Ilari> Last entry on IANA allocations for IPv6: 2006-10-03... That's over 4 years ago...
04:27:37 -!- hagb4rd has quit (Ping timeout: 240 seconds).
04:38:17 -!- quintopia has quit (Ping timeout: 264 seconds).
04:44:55 <Ilari> Whee... Mac OS X doesn't support DHCPv6 (according to these slides).
04:45:53 <Ilari> Haha... Blank slide titled "Response from Users".
04:51:08 -!- quintopia has joined.
05:17:06 -!- azaq23 has joined.
05:22:55 -!- hagb4rd has joined.
05:27:53 <hagb4rd> http://www.youtube.com/watch?v=-CGIii_eTOk
05:28:01 <hagb4rd> :'/
05:30:32 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
05:31:39 -!- Mathnerd314 has quit (Ping timeout: 264 seconds).
05:31:49 -!- poiuy_qwert has joined.
05:37:14 <hagb4rd> http://www.youtube.com/watch?v=p3bkmD-70e4&feature=related&fmt=18
05:38:28 <Sgeo> All C#-like languages bore me
05:39:41 * Sgeo says that as he listens to a song he STRONGLY associates with Vala
05:40:08 * oerjan wonders why Sgeo adds the #
05:40:35 <Sgeo> Because most of these highly marketed languages are closer to C# than C?
05:40:45 <Sgeo> Although yeah, C-like bores me too
05:40:58 <Sgeo> Not "highly" I guess. Hmm
05:41:33 -!- mycroftiv has quit (Ping timeout: 255 seconds).
05:41:47 <hagb4rd> well, it might be interesting experimenting with words, rhymes & rhytm.. but language becomes indefferent if u really want to say something
05:42:41 * oerjan was not aware that C# had spawned its own subfamily
05:43:59 <Ilari> Most dedicated IPv6 sites support IPv6... But seems that many don't. :-)
05:44:27 <Sgeo> Ugh. We really need to get on the ball and start supporting IPv7.
06:02:23 <Ilari> Shortest IPv6 address I have seen on public webserver: 11 characters. Longest: 39 (which is the longest possible).
06:04:09 <Ilari> I believe the shortest possible valid IPv6 unicast address would be 9 characters...
06:05:09 <Ilari> Ah, actually, nope... 7.
06:05:55 -!- cal153 has quit (Read error: Connection reset by peer).
06:07:37 -!- cal153 has joined.
06:07:56 <Ilari> 2003::1 is at least an allocated address.
06:14:15 <oerjan> i'll locate _your_ address
06:16:06 <Sgeo> What happens when we run out of MAC addresses?
06:18:36 <Sgeo> Only 2^6 organizations can make network cards?
06:19:04 <Sgeo> 64
06:19:11 <Sgeo> 64 manufacturers
06:19:16 <Sgeo> Past that, we run out
06:23:11 <myndzi> 2^6?
06:23:13 <myndzi> where'd you learn to math
06:23:17 <myndzi> 6 HEX digits
06:23:49 <myndzi> mac addresses are 12 hex digits; first half is manufacturer, second is device
06:24:52 <oerjan> > 16^6
06:24:53 <lambdabot> 16777216
06:25:43 <quintopia> onoez. each manufacturer can only make 16m nics!
06:25:55 <myndzi> or, they can get another id
06:25:58 <quintopia> exactly
06:26:00 <myndzi> maybe they give them out in ranges
06:26:02 * myndzi shrugs
06:26:06 <quintopia> which is why it's stupid to break it up that way
06:26:15 <myndzi> gotta break it up somehow
06:26:17 <oerjan> 16^12
06:26:21 <oerjan> > 16^12
06:26:22 <lambdabot> 281474976710656
06:26:29 <myndzi> better to hand out multiple ids to a manufacturer than give too many device ids to one and nobody can use them
06:28:18 <quintopia> why not just hand out ranges of MACs on a need-some-more basis and just have a public database if you really need the manufacturer?
06:28:23 <quintopia> it works for IPs...
06:28:36 <myndzi> i dunno, i just sorta guessed it was something like that
06:28:55 <myndzi> http://www.coffer.com/mac_find/
06:28:58 <myndzi> huh how about that
06:29:07 <myndzi> first google result for "mac address manufacturer database" ;P
06:29:08 <quintopia> heh
06:29:31 <myndzi> http://standards.ieee.org/cgi-bin/ouisearch
06:29:36 <myndzi> also that
06:29:48 <myndzi> it does look like an as needed basis
06:29:53 <myndzi> intel has a bunch but they aren't consecutive
06:32:51 <Sgeo> Oops
06:32:59 <Sgeo> Wait
06:33:03 <fizzie> 3com cards used to be 00:01:02, but now they have a billion (for billion = 47) vendor IDs.
06:33:17 <Sgeo> Wikipedia says 8 bits for the manufacturer
06:33:41 <fizzie> There are some flags in the upper bits.
06:33:46 <fizzie> At least two.
06:33:54 <Sgeo> Oh wow, I misread the image
06:34:59 <Sgeo> Maybes I needs sleep
06:35:00 <Sgeo> s
06:38:24 <quintopia> i just don't understand why they need to assign them in 16m chunks
06:38:35 <quintopia> not that i care all that much
06:39:26 <fizzie> Assigning in smaller units would mean more processing of "gimme more" forms.
06:39:46 <quintopia> ha
06:39:53 <fizzie> I guess the assumption is that if you're manufacturing chips, you're going to do a lot of them.
06:41:10 <quintopia> i wonder how many vendors go out of business or stop manufacturing right in the middle of a block. or right at the beginning of one even
06:44:07 <fizzie> They've only allocated 14503 OUIs out of the 4194304 possible, so we don't seem to be running out just ye.
06:44:17 <fizzie> s/ye\./yet./
06:45:27 -!- azaq23 has quit (Quit: Leaving.).
06:45:33 <Sgeo> What is Rexx, and why is it so low on popularity charts
06:45:37 <Sgeo> Often lower than COBOL
07:01:28 -!- Zuu has quit (Read error: Connection reset by peer).
07:01:34 -!- Zuu has joined.
07:07:25 <fizzie> There are quite many Rexx-using Amigists, due to ARexx; but maybe that does not count.
07:08:01 <fizzie> It's not-so-uncommon as an embedded scripting language sort of thing.
07:11:00 <fizzie> I guess you could even call ARexx the Amiga AppleScript, except that sounds pretty silly.
07:12:51 <fizzie> Also I'd like to mention that I'm not an Amiga user, but some of my best friends are (er... were), and there is nothing "wrong" or "shameful" about being one, despite what some people say.
07:21:41 <Vorpal> morning
07:22:03 <Vorpal> or should I say night.
07:22:44 <Vorpal> Woke up due to electric saw. Which was used due to the people here to repair the leaking water from the roof. Oh well.
07:23:02 <fizzie> It is already morning-time.
07:23:38 <Vorpal> fizzie, it isn't morning until 09:00 IMO
07:23:52 <Vorpal> fizzie, and even then only if it has to be.
07:24:16 <Vorpal> fizzie, I was woken up by this sound at 07:33
07:24:22 <fizzie> I'd classify anything before 04:00 as night, after 06:00 as morning, and the part in the middle is a bit of a grey area.
07:24:29 <fizzie> I was woken up by an alarm clock at 07:10.
07:24:38 <fizzie> Well, briefly, anyway.
07:24:51 <fizzie> It didn't quite "take", and then I actually got up at 08:10 or so.
07:24:54 <Vorpal> fizzie, I prefer morning to start at 10:00 and end at 11:30
07:25:14 <Vorpal> 11:30-12:00 is "förmiddag" (can't remember English word for that atm)
07:25:30 <Vorpal> (wait, does English have afternoon but not prenoon?)
07:26:39 <fizzie> They sort-of have a "forenoon", but I think that's a bit rare.
07:27:19 <fizzie> Also WordNet conflates that with "morning".
07:27:26 <fizzie> 1. morning, morn, morning time, forenoon -- (the time period between dawn and noon; "I spent the morning running errands")
07:27:41 <fizzie> OED lists it separately, but still as "The portion of the day before noon".
07:28:33 <fizzie> I don't think they quite separate morgon/förmiddag like we do. (That's fi: aamu/aamupäivä.)
07:30:40 <fizzie> Even going by the dawn-based definition of "morning", it already is that here: sunrise today is at 09:15, and it's about 09:30 now.
07:32:57 <oerjan> you pesky southerners and your early mornings
07:45:32 <fizzie> Intriguing: Trondheim (suggested by grep) is at 63.43N (10.395E) while Lieksa (the place I'm sort-of from except not quite) is at 63.32N (30.025E); that's only a 12 kilometre difference in the North-South direction.
07:48:01 <oerjan> heh i guess it's just the timezone difference then
07:48:37 <fizzie> The "from" was also in sort of an "originally from" sense; currently I'm in Helsinki, which is quite a lot southener.
07:49:01 <fizzie> Or more accurately Espoo, I guess.
07:49:07 <oerjan> oh
07:50:41 -!- drakhan has joined.
07:51:00 <fizzie> 60.1868N 24.8218E is the location of this university building; that's 361 km southwards. (And then take a right turn and go east for a bit.)
07:51:13 <fizzie> (That's the 270-degree right turn.)
07:51:35 <oerjan> ...RIGHT
07:51:47 -!- drakhan has quit (Client Quit).
07:52:36 <fizzie> (I can't seem to tell my left hand from my right.)
07:52:57 <oerjan> WELL GET A TATOO THEN
07:53:02 <oerjan> *TATTOO
07:53:12 <fizzie> A knuckle tattoo, with the left hand saying LEFT and the other one RGHT.
07:53:23 <oerjan> :D
07:53:49 <oerjan> i call rule 34 on that, or something
07:54:22 <oerjan> no google, i _am_ trying to search for rght
07:54:24 <fizzie> oerjan: http://www.knuckletattoos.com/gunCache/t_LEFTRGHT.jpg -- it has the benefit of being also wrongly oriented!
07:54:52 <oerjan> ooh
07:55:09 <oerjan> well that's obviously photoshopped
07:55:23 <fizzie> Well, yes, it's a generator that makes those images. I just entered LEFTRGHT in it.
07:55:47 <oerjan> ah
07:56:47 <oerjan> sadly google seems to fail me
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:14:35 -!- MigoMipo has joined.
08:16:17 -!- Wamanuz has joined.
08:30:36 -!- Vorpal has quit (Read error: Operation timed out).
08:33:46 -!- Vorpal has joined.
08:33:50 -!- Vorpal has quit (Changing host).
08:33:51 -!- Vorpal has joined.
08:36:09 -!- pikhq has joined.
08:48:33 -!- FireFly has joined.
08:49:22 -!- SimonRC has joined.
08:58:27 -!- GreaseMonkey has quit (Quit: ilua).
09:18:56 -!- oerjan has quit (Quit: leaving).
09:50:25 -!- MigoMipo has quit (Read error: Connection reset by peer).
10:19:50 -!- j-invariant has joined.
10:48:37 -!- Wamanuz has quit (Ping timeout: 240 seconds).
11:08:51 -!- mycroftiv has joined.
11:14:26 -!- cheater99 has quit (Ping timeout: 240 seconds).
11:21:02 -!- drakhan has joined.
11:29:11 -!- cheater99 has joined.
12:01:12 -!- sebbu has quit (Ping timeout: 276 seconds).
12:02:38 -!- jcp has quit (Read error: Operation timed out).
12:06:29 -!- jcp has joined.
12:07:52 -!- FireFly has quit (Quit: swatted to death).
12:12:06 -!- ais523 has joined.
12:13:24 -!- cheater00 has joined.
12:15:12 -!- cheater99 has quit (Ping timeout: 240 seconds).
12:25:10 <ais523> wow, first time ever that a spam message went through all the other filters server-side and was caught by my email client
12:51:56 <cheater00> you should cherish this moment
12:52:03 <cheater00> it's obvious it was DESTINED to be
12:52:12 <cheater00> maybe you should read it and memorize it
13:17:21 -!- Sgeo_ has joined.
13:19:02 -!- cheater- has joined.
13:19:34 -!- Sgeo has quit (Ping timeout: 240 seconds).
13:21:58 -!- cheater00 has quit (Ping timeout: 240 seconds).
13:54:15 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:55:51 -!- poiuy_qwert has joined.
13:56:47 <Sgeo_> Is Clean worth learning?
13:57:00 <j-invariant> I think it's just haskell without monads?
13:59:26 -!- azaq23 has joined.
14:00:47 * Sgeo_ isn't particularly interested in Clean being faster
14:00:57 <Sgeo_> There are some things that I can imagine being interested in
14:01:08 <Sgeo_> Other than the language itself
14:01:13 <j-invariant> huh?
14:02:35 <Sgeo_> Say, things like a more.. convenient environment to work with, etc
14:02:58 <Sgeo_> Better module system or whatnot also, although I guess that's a language thing
14:04:23 * Sgeo_ gets bored and wanders off
14:09:44 <Sgeo_> "I think that there is a market for books with fewer pages; there
14:09:44 <Sgeo_> are many people out there that need to learn computer science, but do
14:09:44 <Sgeo_> not appreciate reading"
14:09:47 <Sgeo_> Fuck you
14:10:36 <Sgeo_> ...suddenly I think this Preface is meant in jest
14:14:14 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
14:15:30 <j-invariant> Sgeo_: LOL
14:15:50 -!- poiuy_qwert has joined.
14:19:19 <Sgeo_> Grr
14:19:33 <Sgeo_> Book says to use the Everything environment. There is no Everything environment.
14:20:58 <Sgeo_> Meh
14:22:51 -!- FireFly has joined.
14:34:14 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
14:35:53 -!- poiuy_qwert has joined.
14:37:40 -!- poiuy_qwert has quit (Read error: Operation timed out).
14:37:55 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:59:39 -!- Wamanuz has joined.
15:00:44 -!- poiuy_qwert has joined.
15:00:56 -!- azaq23 has quit (Ping timeout: 272 seconds).
15:03:38 -!- copumpkin has joined.
15:03:39 -!- copumpkin has quit (Changing host).
15:03:39 -!- copumpkin has joined.
15:06:31 -!- oerjan has joined.
15:09:32 <oerjan> <j-invariant> I think it's just haskell without monads?
15:09:53 <oerjan> iirc clean is complete capable of monads, it's just that it doesn't need them for IO
15:09:57 <oerjan> *completely
15:10:35 <oerjan> using uniqueness typing instead to thread the "world" through computations.
15:11:33 <Sgeo_> Is it interesting enough to play with?
15:11:38 <Sgeo_> And fall in love with? >.>
15:11:46 <oerjan> this allows many computations to be performed with in-place updating, but yet be conceptually pure
15:12:14 <Sgeo_> I think I like that thought
15:12:22 <Sgeo_> But I want more
15:12:26 <Sgeo_> Better module system etc
15:12:50 * oerjan doesn't recall what module system clean has
15:15:02 -!- MigoMipo has joined.
15:16:12 <Sgeo_> "It is also available with limited input/output capabilities and without the "Dynamics" feature for Apple Macintosh, Solaris and Linux."
15:16:13 <Sgeo_> Grah
15:16:15 <Sgeo_> That sucks
15:18:15 <fizzie> I like things that have a theme naming thing going on. Like the "awesome" window manager, which has a standard scripting library called "awful", a theming thing called "beautiful", widget thingies called "wicked", "obvious" and "vicious", a notification thingie called "naughty", and so on.
15:18:29 <Sgeo_> fizzie, so do you love Newspeak?
15:18:33 <fizzie> (To clarify: I don't like the WM that much, just the naming.)
15:18:49 <Sgeo_> Brazil, Hopscotch, MiniTest, etc
15:19:16 <Sgeo_> [Not actually sure if Hopscotch fits thematically]
15:20:02 <Sgeo_> Why didn't shutup bother me?
15:20:04 -!- Sgeo_ has changed nick to Sgeo.
15:20:07 <Sgeo> Newspeak
15:20:10 <Sgeo> There we go
15:20:50 -!- BeholdMyGlory has joined.
15:21:13 <fizzie> I can't figure out any examples of actual things that I'd like that'd have a clear naming theme right now, it's just the idea I like.
15:21:48 <fizzie> Well, Chicken Scheme extensions are called "eggs", and I think it has some other related terms in use.
15:22:18 -!- pikhq has quit (Ping timeout: 240 seconds).
15:24:57 -!- pikhq has joined.
15:26:41 <fizzie> Right, the object system (one of them) was called COOPS.
15:29:31 <Sgeo> One of them?
15:29:35 <Sgeo> There's several?
15:37:55 <fizzie> COOPS is one of those eggs
15:40:35 <fizzie> There are approximately 7 different object systems in the egg repository.
15:41:29 <fizzie> http://wiki.call-cc.org/chicken-projects/egg-index-4.html#oop
15:42:15 <Sgeo> Are they all incompatible?
15:42:19 * Sgeo guesses so
15:42:22 <Sgeo> That sucks
15:42:26 <j-invariant> what?
15:44:26 <fizzie> They're made by different people for different purposes, I don't see why (or even how, except kludgily) they should be compatible.
15:44:48 <Sgeo> "Procedures can have no more than 4096 arguments." --Mozart/Oz limitation
15:44:51 * Sgeo is not worried
15:47:36 <j-invariant> heh
15:47:43 <j-invariant> "Procedures can have no more than 4096 arguments." --Mozart/Oz limitation
15:47:50 <j-invariant> "Procedures can have no more than 1 arguments." --Haskell limitation
15:49:07 <Sgeo> lol
15:49:20 * j-invariant plays some minecraft
15:49:49 <oerjan> "Look, this isn't an argument." --Monty Python
15:50:19 <j-invariant> I love that one
15:55:05 * Sgeo mildly deja vus
15:58:04 -!- Phantom_Hoover has joined.
15:58:04 -!- Phantom_Hoover has quit (Changing host).
15:58:04 -!- Phantom_Hoover has joined.
16:06:04 <cheater-> HAPPY 31 DAY
16:06:18 <oerjan> WAT
16:06:27 <cheater-> wat wat
16:06:33 <cheater-> it's 11111
16:06:42 <oerjan> O DAT
16:06:48 <cheater-> YA DAT
16:08:37 <Phantom_Hoover> I hate it when people do that.
16:09:01 <cheater-> wat wat in the butt
16:13:45 <Phantom_Hoover> Act like interpreting the date in binary means something.
16:14:35 <variable> Phantom_Hoover, its just for fun - get over it
16:14:41 <variable> its like pi day
16:15:20 <Phantom_Hoover> "It's just for fun" can't be used as an all-purpose justification.
16:15:24 <Phantom_Hoover> It's still stupid.
16:16:18 <hagb4rd> justified with empty words, the party gets better and better
16:17:08 <Phantom_Hoover> Now, 11/11/11 11:11:11 and a ninth of a second will be the time for partying.
16:17:18 * hagb4rd went away alone, with nothing left but faith
16:17:53 <Phantom_Hoover> Regrettably, it's 11 seconds after the Remembrance Day two-minute silence starts, so partying may be frowned upon.
16:32:33 -!- cal153 has quit (Ping timeout: 260 seconds).
16:32:37 -!- Behold has joined.
16:32:40 <Vorpal> Phantom_Hoover, yeah the only reason to party is when you get a power of two in unix time ;)
16:33:00 <Sgeo> RealPlayer still exists?
16:36:30 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
16:46:08 -!- Behold has changed nick to BeholdMyGlory.
16:54:45 -!- elliott has joined.
16:54:49 <elliott> hi ais523
17:03:23 -!- cal153 has joined.
17:06:36 <elliott> 18:30:43 <copumpkin> j-invariant: it says "adjunction" posted that
17:06:40 <elliott> copumpkin: I think j-invariant is adjunction
17:08:16 <elliott> variable: excuse me, I believe your information to be inaccurate
17:08:19 <elliott> variable: Java uses timsort
17:08:31 -!- asiekierka has joined.
17:08:36 <asiekierka> hey
17:08:37 <elliott> It operates by finding runs in the data. Descending runs are reversed. Then, the size of the run is checked against the minimum run size for that particular array size. The minimum run size depends on the size of the array. For an array of fewer than 64 elements, the minimum run size is the entire array, making timsort essentially a fancy insertion sort in that case. For larger arrays, a number between 32 and 64 is chosen so that the
17:08:37 <elliott> size of the array divided by the minimum run size is equal to, or slightly smaller than, a power of two. The final algorithm for it simply takes the most significant six bits of the size of the array, adds one if any of the remaining bits are set, and uses that as the minimum run size. If the run is too small, insertion sort is used to increase the run until it's the minimum size. The runs are then merged together via merge sort to pr
17:08:37 <elliott> oduce the final sorted array.[3]
17:08:41 <elliott> variable: not quickxort-based
17:08:43 <elliott> *quicksort
17:08:51 <elliott> variable: well ok this is only used since Java 7
17:08:53 <elliott> but still
17:09:16 <elliott> 19:18:10 <Sgeo> How long until we have non-Python languages running on CPython?
17:09:20 <elliott> Sgeo: um a few things do that
17:09:22 <copumpkin> elliott: that's what I think too (I think I wrote it after that)
17:09:23 <elliott> Sgeo: for instance Clue is going to
17:09:27 <copumpkin> but still odd that he posted that
17:09:30 <elliott> copumpkin: by "I think", I mean 99% sure
17:09:38 <elliott> copumpkin: also, I think he was quoting it as mockery ...
17:09:45 <copumpkin> oh okay
17:09:48 <copumpkin> it wasn't very obviously a quote
17:09:58 <copumpkin> except that given his other posting history, it was pretty obviously not what he thought
17:10:15 <Sgeo> elliott, huh. Are there any languages that don't have other languages running on their... system?
17:10:33 <oerjan> Malbolge.
17:11:06 <elliott> copumpkin: I think j-invariant was trying to see how many points it'd get :)
17:11:12 <elliott> who knows
17:11:17 <elliott> anyway, /me continues logreading
17:11:22 <elliott> that's one thing you zany #haskellers can't do!
17:11:26 <elliott> we have nice, digestible 100k logs
17:11:48 <elliott> 19:19:18 <variable> oerjan, Sgeo btw - I was talking about an array of ints
17:11:50 <copumpkin> lol
17:11:52 <elliott> sorting an array of ints
17:11:57 <elliott> i can do that in O(n)
17:13:41 <elliott> 19:21:17 <oklopol> there should be a nonstandard set theory: \exists set S such that S^N is finite, but S is nonempty
17:13:41 <elliott> 19:21:28 <oklopol> (from nonstandard analysis, although that was probably clear)
17:13:48 <elliott> oklopol: omg that would be amazing... invent that
17:19:05 <elliott> 21:38:28 <Sgeo> All C#-like languages bore me
17:19:05 <elliott> 21:39:41 * Sgeo says that as he listens to a song he STRONGLY associates with Vala
17:19:05 <elliott> how the fuck do you associate a song with Vala
17:20:02 <oklopol> "<Vorpal> Phantom_Hoover, yeah the only reason to party is when you get a power of two in unix time ;)" <<< ah, all ones!
17:20:13 <oklopol> along the lines of "11/11/11 11:11:11 and a ninth of a second"
17:20:38 <j-invariant> ars
17:20:51 <Vorpal> oklopol, oh, all ones too. Which is just power of two - 1
17:21:04 <Sgeo> elliott, by being extremely obsessed with a song and having it on loop at the same time as reading about the language
17:21:20 <elliott> Sgeo: nutcase :D
17:22:45 <oerjan> sane cut
17:23:42 <oklopol> Vorpal: a power of two has more 1's than power of two - 1
17:24:17 <oerjan> um, no
17:24:24 <elliott> xD
17:24:24 <oklopol> sea cont
17:24:26 <oklopol> *sea cunt
17:24:28 <elliott> but the ones are WORTH more!
17:24:37 <elliott> oklopol: so did you hear, cled is working
17:24:39 <oklopol> oerjan: it has infinitely many doesn't it?
17:24:39 <elliott> sorta
17:24:52 <oerjan> what
17:24:58 <oklopol> 1111.111111111...
17:25:03 <elliott> :D
17:25:05 <oerjan> argh
17:25:06 <elliott> oklopol: btw re first-class functions
17:25:12 <oklopol> that's why i explained: 'along the lines of "11/11/11 11:11:11 and a ninth of a second"'
17:25:15 <elliott> oklopol: you should NOT add lambda syntax
17:25:25 <Vorpal> but it doesn't count unless you convert it to graycode first
17:25:25 <elliott> oklopol: in e.g. map, the lambda parameter must be an existing clue function :)
17:25:26 <oklopol> elliott: oh i was not gonna, don't worry
17:25:38 <oerjan> only lambada syntax
17:25:53 <oklopol> elliott: that was the original plan, however, how about single-example lambdas?
17:25:54 <oklopol> like
17:26:17 <elliott> oklopol: here's how i'd do it
17:26:17 <elliott> map ~ {. <succ> [] -> [] } map ~ {:. <succ> [1 2 3] -> [2 3 4] : <succ> [2 3] -> [3 4] } map ~ []; car; cdr
17:26:23 <elliott> obviously <succ> can be any clue function you want
17:26:26 <oklopol> or like xxx ~ function 1; function 2; helper object; { . 1 -> 2. 3 -> 6 };
17:26:39 <elliott> oklopol: hmm i don't see why you'd need that?
17:26:45 <elliott> clue is good at inferring functions, after all
17:27:36 <oklopol> just a random idea, what you said is pretty much exactly what i was thinking
17:27:48 <Sgeo> What's with more of the < >?
17:27:49 <variable> elliott, I timsort is an interesting sort - but I don't believe Java uses it - at least not in the current implementation
17:27:55 <oklopol> Sgeo: because names can have spaces
17:28:09 <elliott> Timsort is a hybrid sorting algorithm derived from merge sort and insertion sort, designed to perform well on many kinds of real-world data. It was invented by Tim Peters in 2002 for use in the Python programming language, and has been Python's standard sorting algorithm since version 2.3. It is now also used to sort arrays in Java SE 7,[1] and on the Android platform.[2]
17:28:11 <elliott> variable: ^
17:28:15 <elliott> as of Java 7
17:28:17 <oklopol> so you probably want a separator that's not whitespace
17:28:29 <oklopol> but because whitespace is the separator, the only non-ugly way is to enclose the function name
17:28:32 <elliott> oklopol: <> is nice because it used to have another meaning, so it breaks backwards compat!
17:28:38 <elliott> oklopol: {} and [] are kinda taken, and () is ugly
17:28:40 <elliott> which is why I picked <>s
17:28:44 <Sgeo> What was the other meaning?
17:28:57 <oklopol> ugh
17:28:58 <oklopol> don't ask
17:28:58 <oklopol> :D
17:29:05 <Sgeo> Too late
17:29:13 <oklopol> "just this thing having to do with the hardest thing to explain about clue"
17:29:20 <oklopol> not very hard really
17:29:25 <oklopol> i just can't manage to do it succinctly
17:29:37 -!- Behold has joined.
17:29:56 <oklopol> all functions are switch statement + expression with possibly recursion; <> was used to give a function used in the switch statement
17:30:05 <oklopol> now, that's inferred completely, as well
17:30:05 <elliott> yeah and you always used <id>
17:30:08 <elliott> bcuz it was made of retard
17:30:11 <elliott> (technical term)
17:30:31 -!- BeholdMyGlory has quit (Read error: Operation timed out).
17:32:01 <j-invariant> elliott
17:32:24 <elliott> j-invariant
17:32:34 <j-invariant> http://en.wikipedia.org/wiki/Axiom_%28computer_algebra_system%29
17:32:41 <elliott> verily
17:33:10 <elliott> yes? :P
17:33:11 <oklopol> lol ~ {. {. <{. 6 -> 7} ~ succ> 3 -> 5 } 4 -> 8 }
17:33:24 <oklopol> wait
17:33:25 <elliott> oklopol: xD i... how should i say this... no :P
17:33:30 <elliott> and you missed a <>
17:33:32 <elliott> and a hint list
17:33:35 <oklopol> hmm, i suppose you need explicit apply
17:33:42 <elliott> oklopol: but um yeah why compromise purity like that ...
17:33:42 <Phantom_Hoover> <j-invariant> http://en.wikipedia.org/wiki/Axiom_%28computer_algebra_system%29 ← what about it?
17:33:44 <oklopol> because not having it would be retarded
17:33:47 <elliott> oklopol: it's not like adding another function is much work
17:33:52 <elliott> Phantom_Hoover: i was talking about it w/ j-invariant yesterday
17:33:56 <elliott> oklopol: also, "explicit apply"?
17:34:00 <elliott> you mean like, apply being a function?
17:34:03 <oklopol> yes
17:34:06 <oklopol> you need that in the bag
17:34:21 <elliott> oklopol: why not cons(#0(car(#1)) @(cdr(#1)))
17:34:31 <elliott> sort of thing
17:34:32 <Phantom_Hoover> elliott, did the conversation consist of "<elliott> It sucks. <j-invariant> I agree."?
17:34:33 <elliott> without apply
17:34:38 <elliott> Phantom_Hoover: no, i think it's cool
17:34:46 <elliott> and i think it might be what j-invariant was inventing mostly
17:34:48 <oklopol> elliott: because objects shouldn't have operations attached to them
17:34:51 <oklopol> functions are no exception
17:34:51 -!- doraemon has joined.
17:35:00 <oklopol> i mean
17:35:03 <elliott> oklopol: surely, then, you should have to include apply in every list
17:35:12 <elliott> to call all the other functions in the bag
17:35:13 -!- doraemon has changed nick to Guest32802.
17:35:25 <elliott> (done by using apply in an infinite regress, naturally)
17:35:35 <oklopol> elliott: that is true, but see in the grand scheme of things, apply would be good, since in clue 2.0, "function tools" would be included by default
17:35:44 <oklopol> just like list tools would be if you were using alist
17:35:46 <oklopol> *a list
17:35:46 <elliott> oklopol: fair enough then.
17:35:58 <elliott> oklopol: i hope clue 2 doesn't break cled too horribly.
17:36:06 <Guest32802> Hi everyone, I have a question regarding a bf converter. I'd like to write a converter that converts a given string to bf, with one small catch: I
17:36:16 <Guest32802> I would like it to optimize the output as much as possible
17:36:23 <oklopol> elliott: and while apply would be in all your millions of higher-order functions, it's still possible you sometimes don't want to be able to apply
17:36:25 <Guest32802> i.e. the shortest string of bf that it can produce
17:36:30 -!- Guest32802 has changed nick to doraemon___.
17:36:41 <oklopol> you might say just want to compose! wait...
17:36:45 <Gregor> doraemon___: It is not generally possible to prove that a string is the shortest possible.
17:36:53 <elliott> doraemon___: that is provably impossible to do
17:36:56 <elliott> with a general algorithm
17:36:57 <doraemon___> Gregor: well yeah, but I mean
17:36:57 <elliott> SORRY :)
17:37:08 <doraemon___> I'd like to produce a short, optimized string
17:37:14 <elliott> sure but you can't do the _shortest_
17:37:16 <doraemon___> Not necessarily the shortest possible :)
17:37:22 <elliott> but that's what you said :P
17:37:23 <doraemon___> Yes, I know...
17:37:24 <oklopol> elliott: could've been an answer to me as well D:
17:37:27 <Gregor> !bf_txtgen Hello, doraemon___!
17:37:28 <oklopol> "<elliott> doraemon___: that is provably impossible to do"
17:37:35 <EgoBot> 163 +++++++++++++++[>+++++>+++++++>+++++++>+++<<<<-]>---.>----.>+++..+++.>-.------------.<<-.>.+++.-----------------.<+.++++++++.++.-.>--...>+.-----------------------. [164]
17:37:52 <doraemon___> That's decent
17:37:53 <elliott> txtgen is not a very good example, it's all yucky and non-deterministic
17:38:04 <elliott> but i think all the best generators are like private projects that havent been released
17:38:05 <elliott> *haven't
17:38:05 <doraemon___> Well it's better than the dumb way
17:38:10 <elliott> i've heard people doing them in here
17:38:13 <elliott> doraemon___: it uses a genetic algorithm
17:38:15 <elliott> of
17:38:17 <elliott> some kind :D
17:38:20 <elliott> oklopol lynches me now
17:38:24 <elliott> it's prolly just hill-climbing
17:38:24 <doraemon___> Yeah I was thinking about doing that
17:38:27 <doraemon___> Using a GA
17:38:27 <j-invariant> isn't ther ea very good way
17:38:32 <doraemon___> To find short possibilities
17:38:34 <j-invariant> gzip
17:38:43 <oklopol> yeah it's some sort of hill-climbing
17:38:53 <j-invariant> for very small inputs direct: for larger inputs ASCII: for HUGE inputs gzip
17:38:56 <oklopol> i read it once, but don't really remember, it definitely wasn't genetic tho
17:39:07 <doraemon___> My friend was using a method of predicting all the possibilities within a range, like 1...n
17:39:12 <doraemon___> But it isn't a very good way
17:39:15 <Gregor> doraemon___: bf_txtgen was was written by calamari. See http://codu.org/projects/egobot/hg/index.cgi/file/tip/multibot_cmds/interps/bf_txtgen
17:39:20 <doraemon___> It was only 16 chars shorter than my brute force method
17:39:21 <elliott> use genetic algorithms to evolve a bf text generator >:D
17:39:22 <elliott> SO META
17:39:29 <doraemon___> Oh thanks Gregor :)
17:39:48 <Gregor> Nothing EgoBot does is secret :P
17:39:55 <Gregor> (And most of it isn't mine either)
17:40:06 <doraemon___> So that's probably one of the best methods in your opinion?
17:40:20 <Gregor> It's the best one you can get your hands on right now.
17:40:21 <elliott> Probably not :P
17:40:21 <oklopol> yeah Gregor can't really do anything right so he gets other people to write his code and takes all the credit
17:40:23 <elliott> But yeah.
17:40:24 <Gregor> I have no doubt that there are better ones.
17:40:27 <Gregor> oklopol: Pretty much.
17:40:30 <oklopol> and sometimes write 1000 page books about this
17:40:32 <elliott> oklopol: he tried to do that with me and cunionfs
17:40:34 <oklopol> all hype
17:40:35 <Gregor> oklopol: It's worked pretty well so far.
17:40:39 <elliott> i suspect it's because he's a jew (<-- NOTE THIS IS NOT SERIOUS)
17:40:49 <j-invariant> I conjecture that it's possible to find the optimal brainfuck program for all strings of length below 256
17:41:09 <Gregor> j-invariant: It is in fact /possible/ to find the optimal brainfuck program for any given string, it's just extremely expensive.
17:41:19 <elliott> j-invariant: hey we're actually inching towards a place where I can yell halting problem legitiamtely
17:41:22 <elliott> *legitimately
17:41:23 <elliott> Gregor: not really
17:41:28 <elliott> Gregor: well, with human ingenuity, yes
17:41:36 <j-invariant> elliott: ? not really
17:41:38 <oklopol> j-invariant: did you know the busy beaver function hasn't been solved for was it 5 or 6 states and binary?
17:41:41 <oklopol> for tm's
17:41:43 <Gregor> elliott: Brute-force try every BF program from shortest to longest until you find one that prints the program. QED.
17:41:44 <j-invariant> oklopol: yeah
17:41:45 <elliott> but not dumb-mechanically, because that program that runs for 100 years might then print out the right string
17:41:47 <elliott> Gregor: dude...
17:41:53 <elliott> Gregor: what about ones that don't halt
17:42:00 <j-invariant> elliott: prove they don't halt
17:42:01 <elliott> Gregor: that works, if you have infinite time to run them all concurrently
17:42:05 <elliott> j-invariant: right, so with human ingenuity
17:42:07 <oklopol> j-invariant: okay, just that yours seemed kind of astronomical compared to that
17:42:13 <j-invariant> elliott: or an automated prover
17:42:15 <elliott> Gregor's is stupid though :P
17:42:28 <elliott> j-invariant: that could work. maybe. for 64 char strings, sure, not 256. i'd wager.
17:42:46 <j-invariant> oklopol: I don't see a direct connection with busy beaver?
17:42:48 <doraemon___> elliott: I think you need an Oracle to solve the halting problem :p
17:43:01 <oklopol> "<Gregor> j-invariant: It is in fact /possible/ to find the optimal brainfuck program for any given string, it's just extremely expensive." <<< there's not even a semialgorithm for this
17:43:18 <doraemon___> !bf_txtgen Hello, world!
17:43:21 <EgoBot> 126 ++++++++++[>+++++++>++++++++++>++++>+<<<<-]>++.>+.+++++++..+++.>++++.------------.<++++++++.--------.+++.------.--------.>+.>. [958]
17:43:47 <elliott> doraemon___: damn you larry ellison
17:44:39 <Sgeo> doraemon?
17:45:06 <doraemon___> Yes?
17:45:11 <oklopol> j-invariant: there's none, but i doubt there's an essential difference in the hardness of the problem, 256 needs a pretty long bf program, and i doubt you can say *anything* about certain bf programs of really short length
17:45:20 <doraemon___> Do I know you, Sgeo?
17:45:34 <j-invariant> oklopol: which ones?
17:45:43 <Sgeo> Have you ever played a game.. it was a web-based game
17:45:47 <oklopol> j-invariant: the ones that happen to be hard
17:45:57 <j-invariant> hm
17:45:59 <doraemon___> I've played web-based games... sure
17:46:01 <doraemon___> Which one, Sgeo?
17:46:04 <elliott> gee i can't imagine the name Doraemon being popular
17:46:04 <Sgeo> With battles, etc. Someone with your name (I think) was building a superweapon
17:46:08 <Sgeo> I don't remember the name
17:46:09 -!- asiekierka has quit (Ping timeout: 272 seconds).
17:46:11 <elliott> CAN'T IMAGINE
17:46:15 <j-invariant> the shortest difficult brainfuck program I can think of is collatz
17:46:17 <doraemon___> Hm, I'm not sure Sgeo
17:46:20 <Sgeo> Spacefed I think?
17:46:25 <doraemon___> Might have been a different me ;p
17:46:46 <j-invariant> no that doesn't work
17:46:54 <Sgeo> Space Fed Galactic Conquest
17:47:07 <doraemon___> Hm, yeah I don't think that was me
17:47:08 * Gregor reappears.
17:47:16 <Sgeo> Ah, darn
17:47:16 <oklopol> j-invariant: erm, you can implement any tm in bf with a constant size increment can't you?
17:47:20 <Sgeo> erm
17:47:22 <doraemon___> Sorry, Sgeo :(
17:47:47 <j-invariant> What's the shortest brainfuck program that we don't know whether it terminates or not?
17:47:47 <elliott> lawl
17:47:55 <elliott> j-invariant: ,[.,]
17:47:58 <elliott> ^ DEEP PHILOSOPHY SHIET
17:47:58 <oklopol> say keep state in n first bits in every second bit
17:48:01 <j-invariant> that doesn't use inputs
17:48:05 <elliott> DARN
17:48:11 <oklopol> and move that around
17:48:11 <elliott> collatz i would guess
17:48:13 <elliott> or some TM
17:48:20 <oklopol> erm what, how small is this collatz?
17:48:26 <elliott> http://www.hevanet.com/cristofd/brainfuck/collatz.b
17:48:26 <elliott> but
17:48:29 <j-invariant> should make an automated prover for halting of brainfuck, then use that to kill of boring candidates
17:48:30 <elliott> it takes decimals on input
17:48:32 <elliott> remove the output
17:48:32 <Sgeo> It would have been in 2003
17:48:35 * Sgeo shrugs
17:48:36 <elliott> and have it just iterate through every natural
17:48:42 <elliott> so
17:48:45 <elliott> that should be fairly short
17:48:48 <elliott> probably shorter than what's there even
17:49:17 <doraemon___> Sgeo: funny how 2003 seems like such a long time ago now...
17:49:40 <oklopol> isn't that collatz only long because of parsing input
17:49:42 <oklopol> i mean
17:49:53 <oklopol> shouldn't be more than a few characters, division isn't very hard
17:50:53 <oklopol> but anyway, i find it unlikely that the shortest program your halting prover gets stuck in makes any sense at all, it's just a program with a random characters that happens to not have trivial behavior.
17:51:41 <oklopol> *-a
17:52:10 <oklopol> bf might certainly be especially slow at hitting something like that
17:52:39 <elliott> yeah if you made it just iterate, not print, and not take input, that collatz could be tiny
17:53:05 <oklopol> i'll make an arbitrary conjecture: bf programs are easy to prove up up to size 38
17:53:19 <oklopol> place your bets now
17:53:25 <Gregor> Define "easy"
17:53:27 <oklopol> ask definitions later
17:53:30 -!- hagb4rd has quit (Read error: Connection reset by peer).
17:53:41 <elliott> oklopol: how do you define SIZE
17:53:43 <oklopol> damn, was too slow
17:53:47 <elliott> how do you define TO
17:53:54 <Gregor> How do you define "38"?
17:54:00 <Gregor> How do you define "I'll"?
17:54:03 <elliott> oklopol: so can we have N-input, N-output functions
17:54:05 <oklopol> Gregor: the obvious way, if there's a dispute, i'm right, you're wrong
17:54:06 <elliott> oklopol: specifically, 0-input ones
17:54:07 <elliott> and 0-output ones
17:54:15 <oklopol> and i get the moneys
17:54:34 <oklopol> elliott: what, in these bf programs?
17:54:40 <elliott> no
17:54:43 <elliott> in klew
17:54:56 <oklopol> oh i totally didn't see that coming
17:55:20 <oklopol> http://www.youtube.com/watch?v=-CGIii_eTOk <<< why exactly did i have this retarded shit in my browser?
17:55:38 <oklopol> elliott: i don't like how 0 io looks like, syntactically
17:55:44 <oklopol> otherwise i'd have no potato with them
17:55:51 <elliott> oklopol: sure, but it makes cled so less ugly...
17:55:54 <elliott> holes are like
17:55:56 <elliott> the biggest bug ever
17:56:02 <oklopol> maybe they are allowed in the language, but you can't actually write any?
17:56:05 <elliott> you can have the ast in an invalid state, and all it does is sit there looking slightly ugly
17:56:08 <elliott> oklopol: xD
17:56:17 <elliott> oklopol: well let's put it this way
17:56:23 <elliott> oklopol: you're going to add N+1-output functions right?
17:56:24 <elliott> well
17:56:29 <elliott> do you know who thinks 0 isn't a natural?
17:56:30 <elliott> that's right
17:56:31 <elliott> stupid people
17:56:34 <elliott> and do you know what set you'd be using
17:56:36 <elliott> N\{0}
17:56:37 <elliott> parameters
17:56:38 <elliott> now
17:56:39 <elliott> what is that oklopol
17:56:41 <elliott> that is
17:56:43 <elliott> HIDEOUS
17:56:45 <elliott> you, if you do that, are hideous
17:56:47 <elliott> don't be hideous
17:56:49 <elliott> N-io
17:56:53 <oklopol> maybe i am hideous, you haven't seen me
17:56:59 <elliott> yes i have
17:57:01 <elliott> you were on the map thing
17:57:07 <oklopol> ...oh right
17:57:10 <elliott> xD
17:57:31 <oklopol> well i was pretty sexy in that pic so i guess i have nothing more to say
17:57:41 <elliott> what you have to say is
17:57:44 <elliott> OK DUDE N-INPUT-OUTPUT BITCH
17:57:57 <oklopol> no syntax for them must ever exist.
17:58:06 <elliott> oklopol: um you're adding syntax for N-output
17:58:08 <elliott> surely
17:58:16 <elliott> oklopol: c'moooon :(
17:58:26 <oklopol> yeah, just whitespace separate the outputs
17:58:30 <elliott> yes
17:58:36 <elliott> lol ~ {. -> }
17:58:41 <oklopol> yeah that's ugly
17:58:41 <elliott> oklopol: it's for the greater good dude
17:58:43 <oklopol> but hmm
17:58:44 <elliott> yes it is
17:58:44 <elliott> which is why
17:58:46 <elliott> you should never write it
17:58:50 <elliott> but you could also write clue code like this
17:58:57 <oklopol> MAYBE A SEPARATE SYNTAX FOR WRITING ZERO ARG FUNCTIONS
17:59:01 <elliott> this_Is_A_Name~{: . hello->[1 2
17:59:04 <oklopol> :D
17:59:05 <elliott> 3]} this_Is_A_Name
17:59:08 <elliott> ~ x;y; z
17:59:10 <elliott> that is hideous
17:59:12 <elliott> but you don't do that
17:59:17 <elliott> because you're a good clueist
17:59:24 -!- cheater99 has joined.
17:59:27 <elliott> same reason you wouldn't do "lol ~ {. -> }", not only is it useless
17:59:29 <elliott> but it's fucking ugly too
17:59:47 <elliott> oklopol: alternatively: remove N-inputs and just have every function take one input
17:59:48 <elliott> :D
18:00:20 <oklopol> okay have your fucking party, i don't actually give a shit about whether {. -> } is legal
18:00:33 <oklopol> also.....
18:00:46 <oklopol> {. -> 1} will be totally useful with hardcore functions
18:00:50 <oklopol> by which i mean higher-order
18:00:52 <Gregor> wtfbbq is going on here :P
18:00:57 <elliott> oklopol: i have the perfect way to write it
18:01:02 <elliott> oklopol: {.-> 1}
18:01:05 <oklopol> yeah
18:01:08 <elliott> oklopol: .-> is the lambda arrow's retarded cousin
18:01:12 <oklopol> :D
18:01:16 <oklopol> Gregor: clue
18:01:21 <oklopol> get one
18:01:25 -!- cheater- has quit (Ping timeout: 240 seconds).
18:01:29 <Gregor> DO NOT WANT
18:01:35 <elliott> oklopol: anyway actually implementing that will have to wait for you to add n-outputs, so :P
18:01:36 <elliott> for now i'll just
18:01:38 <elliott> eliminate holes
18:01:44 <elliott> and force you to replace, not delete
18:01:46 <elliott> the last two elems
18:01:47 <oklopol> mmmm n outputs
18:01:48 <elliott> why didn't i think of that
18:01:50 <elliott> OH RIGHT
18:01:54 <elliott> because inserting a branch is like liquid pain
18:01:56 * oklopol touches with red thing in mouth
18:02:15 <elliott> Your uvula?
18:02:30 <oklopol> no you pervert
18:02:52 <oklopol> MEN DON'T UVULATE
18:03:03 <elliott> :D
18:04:16 <oklopol> for some reason i know that word in english, but i remember i didn't know it in finnish until a friend of mine whose dad is a dentist told me
18:04:23 <oklopol> it's like the most useless thing ever
18:04:36 <elliott> http://theorymine.co.uk/ haha what
18:05:30 <j-invariant> elliott: so embarassing
18:05:52 -!- oerjan has quit (Quit: Drøvel drøvel drøvel).
18:05:59 <oklopol> i would certainly like to know what they look like
18:06:05 <j-invariant> what's the best automated termination checker for brainfuck?
18:06:24 <oklopol> don't know.
18:06:26 <elliott> what is this thing what
18:06:27 <elliott> why does this exist
18:06:29 <elliott> j-invariant: there is none :P
18:06:37 <elliott> it's often trivial to prove
18:06:40 <j-invariant> probaly just running the damn thing for 100000 iterations
18:06:51 <elliott> e.g. [ on an even number with balanced > and < means it loops forever
18:07:04 <elliott> well. with no nested loops
18:07:10 <elliott> wait that isn't true
18:07:12 <elliott> i forget the rule :D
18:07:44 <oklopol> yeah [-] is a counterexample
18:08:07 <elliott> there's a rule
18:08:09 <elliott> look at esotope for it :P
18:08:16 <elliott> actually an automated termination checker for bf would be fun
18:08:41 <oklopol> well there are many obvious things you can do, like look at which cells it actually changed, and wait for loop
18:08:56 <j-invariant> if you just code all the obvious rules that would be a good start
18:09:09 <elliott> there's an O(1) way for certain loops
18:09:11 <j-invariant> then you can inspect the programs it doesn't get, and learn more sophistcated rules from them
18:09:14 <elliott> that can tell you it doesn't halt
18:09:21 <elliott> based on extended euclidean algorithm
18:09:22 <elliott> very simple
18:09:24 <elliott> this is assuming 8-bit cells
18:09:33 <elliott> it could easily be modified to spit out a certificate to prove it
18:09:35 <elliott> if it does not halt
18:09:53 <oklopol> j-invariant: nice idea, but usually the first one you inspect will be completely out of your reach
18:10:08 <j-invariant> oklopol: I doubt that, why do you say that? Think it will be a collatz type thing?
18:10:16 <oklopol> my experience is mostly based on trying to find the smallest aperiodic set of wang tiles in the summer
18:10:17 <j-invariant> oklopol: if so, then that's my goal! I want to find that program
18:10:37 <j-invariant> oklopol: wow cool how did that go?
18:10:40 <oklopol> we ran computer simulations, and when a tile set didn't work, we looked at it manually
18:10:41 <Phantom_Hoover> "This really captured my imagination and I'm delighted to buy TheoryMine's first Theorem. What an inventive use of Scotland's expertise in artificial intelligence to create such a novel and fun product". — TheoryMine testimonials.
18:10:49 <Phantom_Hoover> I AM NOT SCOTTISH SHE DOES NOT REPRESENT ME
18:10:56 <oklopol> and you could never say anything about them, after hours, you just ended up running the computer program for longer...
18:10:58 * Sgeo decides that The Onion Audio news suck
18:11:04 <Phantom_Hoover> Anne Glover, Chief Scientific Officer for Scotland
18:11:05 <Sgeo> It's the only sucky Onion thing
18:11:06 <Phantom_Hoover> AAAAAAAAAAAAAAAAAAAAAAAAAa
18:11:24 <elliott> Sgeo: the onion is good for the headlines.
18:11:25 -!- sebbu has joined.
18:11:25 <Phantom_Hoover> Clearly she is personally responsible for the suckishness of the computing curriculum.
18:11:27 <elliott> the articles are superfluous.
18:11:30 <j-invariant> oklopol: to my knowledge, every set of wang tiles except one is based on substitution
18:11:36 <elliott> lol wang
18:11:36 <elliott> ahem
18:11:41 <oklopol> well, there was one that had something the program didn't catch: there was a way to convert it into a smaller one that would've had to be aperiodic as well
18:11:42 <j-invariant> and the one that's not is based on irrational numbers
18:11:43 <elliott> j-invariant: proposed first step in the halting checker: see if esotope produces a simple infinite loop for it
18:11:48 <elliott> j-invariant: it has a bunch of checks for that, i believe
18:11:49 <oklopol> j-invariant: yeah, that smallest one is not based on substitution
18:11:49 <j-invariant> so they all "come from somewhere"
18:11:52 <elliott> for instanec
18:11:52 <elliott> j-invariant: proposed first step in the halting checker: see if esotope
18:11:53 <elliott> erm
18:11:55 <elliott> 233 elif len(result) == 1 and result[0][0] == result[0][1]:
18:11:56 <elliott> 234 if result[0][0] is None:
18:11:58 <elliott> 235 return Always()
18:12:00 <elliott> *instance
18:12:02 <elliott> from its condition code
18:12:04 <oklopol> and that's made by my employer
18:12:04 <elliott> can't find the extended euclidean thing
18:12:12 <oklopol> which is why i was doing that in the sumemr
18:12:14 <oklopol> *summer
18:12:21 <Phantom_Hoover> I wish that they had example theorems somewhere.
18:12:34 <elliott> aha
18:12:38 <elliott> Phantom_Hoover: they do
18:12:43 <elliott> j-invariant: http://hg.mearie.org/esotope/bfc/file/5bdae1176f46/bfc/opt/simpleloop.py
18:12:51 <oklopol> (actually that's not completely true, since his colleaque changed a small detail to get one less tile, but that is a less interesting story)
18:12:58 <elliott> 90 # let w be the overflow value, which is 256 for char etc.
18:12:58 <elliott> 91 # then there are three cases in the following code:
18:12:59 <elliott> 92 # i = 0; for (j = 0; i != x; ++j) i += m;
18:13:00 <elliott> 93 #
18:13:02 <elliott> 94 # 1. if m = 0, it loops forever.
18:13:04 <elliott> 95 # 2. otherwise, the condition j * m = x (mod w) must hold.
18:13:06 <elliott> 96 # let u * m + v * w = gcd(m,w), and
18:13:07 <Phantom_Hoover> elliott, where...
18:13:08 <elliott> 97 # 1) if x is not a multiple of gcd(m,w), it loops forever.
18:13:10 <elliott> 98 # 2) otherwise it terminates and j = u * (x / gcd(m,w)).
18:13:12 <elliott> 99 #
18:13:14 <elliott> 100 # we can calculate u and gcd(m,w) in the compile time, but
18:13:16 <elliott> 101 # x is not (yet). so we shall add simple check for now.
18:13:18 <elliott> j-invariant: ^
18:13:28 <Phantom_Hoover> Oh, right.
18:13:42 <elliott> Phantom_Hoover: also http://dream.inf.ed.ac.uk/events/automatheo-2010/papers/automatheo2010_submission_1.pdf
18:14:04 <elliott> j-invariant: how is it that all these systems that seem to do better than coq get overlooked, btw?
18:14:08 <elliott> j-invariant: HOL and Isabelle and stuff
18:14:14 <oklopol> j-invariant: yeah, the ones that people have been able to prove things about come from somewhere; that's exactly my point, when they don't come from somewhere, you're screwed
18:14:32 <elliott> j-invariant: I can understand Mizar, which has a very comprehensive development, being overlooked for being proprietary and non-constructive; and Automath too for similar reasons and also being old
18:14:35 <elliott> but the others?
18:14:54 <oklopol> for wang tiles, it seems possible that the best solution actually makes sense, since we're at 13, and 9 has been proven not to contain aperiodics afair
18:16:02 <oklopol> elliott: oh that was for balanced unnested?
18:16:12 <oklopol> well obviously that's trivial, since you just have to look at the evolution of the current cell
18:16:13 <elliott> oklopol: i dunno :D
18:16:13 <oklopol> lol
18:16:15 <elliott> but yeah
18:16:29 <oklopol> LOL i say
18:16:38 <elliott> lo your own ol
18:16:50 -!- Zuu has quit (Read error: Connection reset by peer).
18:17:24 <oklopol> should prolly go to sleep
18:17:46 <oklopol> last week i had 28 hour days, this week they seem to be more like 20
18:17:47 <j-invariant> elliott: help me write a brainfuck termination checker?
18:18:12 <elliott> j-invariant: sure ... as long as it's not TOO hard
18:18:18 <elliott> j-invariant: what proof language should the certificates be in?
18:18:27 <oklopol> :D
18:18:40 <j-invariant> elliott: I always have in mind the version where all the cells can contain infinitely large integers
18:18:55 <elliott> j-invariant: i dislike that version intensely
18:18:59 <oklopol> either that or binary, everything else is retarded
18:19:01 <elliott> j-invariant: that collatz uses 8-bit cells anyway
18:19:06 <elliott> so why not :P
18:19:15 <elliott> j-invariant: most programs are written for 8-bit cells anyway
18:19:15 <elliott> also
18:19:16 <j-invariant> it's just the 8bit thing is so bloody confusing
18:19:19 <elliott> why
18:19:22 <oklopol> except holding up to 37, and wrapping to 19
18:19:24 <j-invariant> I can never get my head around that wrap around stuff
18:19:29 <elliott> oklopol: xD like deadfish
18:19:30 <elliott> if we have arbitrary integers,
18:19:33 <elliott> then the tape must be only two long
18:19:36 <elliott> that is my proclamation
18:19:43 <oklopol> eh
18:19:50 <elliott> j-invariant: the nice thing about 8-bit integers
18:19:52 <j-invariant> I am fine with 8 bit numbers
18:19:54 <j-invariant> lets go with that
18:19:57 <j-invariant> integers?
18:19:58 <elliott> j-invariant: is that they make the work a bit easier
18:20:01 <j-invariant> so they can be negative..
18:20:03 <elliott> because the tape sort of segments them out
18:20:03 <j-invariant> ?
18:20:03 <elliott> er no
18:20:09 <oklopol> what
18:20:10 <elliott> 8-bit non-negative integers
18:20:11 <elliott> 0 to 255
18:20:12 <j-invariant> okay good
18:20:13 <oklopol> make the work easier?!?
18:20:16 <elliott> oklopol: sort of :D
18:20:18 <elliott> when writing a termination checker
18:20:21 <j-invariant> hey afaict they make everything harder
18:20:23 <oklopol> that's just plain not true!
18:20:32 <elliott> oklopol: you can't do that fancy euclidean stuff with arbitraries!
18:20:34 <elliott> :D
18:20:38 -!- Zuu has joined.
18:20:38 <oklopol> everything gets really hairy, a mathematician would never have wrap 256
18:21:07 <elliott> well a boolfuck termination checker is a lot more boring
18:21:10 <oklopol> elliott: umm, for infinites, that algo doesn't even need modular arithmetic
18:21:15 <elliott> because there's less existing programs to poke it at
18:21:23 <elliott> oklopol: hmmmmmmm
18:21:24 <elliott> but
18:21:26 <elliott> but things assume 8-bit
18:21:29 <elliott> but
18:21:40 <oklopol> that is, you don't even *need* that fancy euclidean stuff
18:21:58 <elliott> hmm
18:22:00 <oklopol> infinite things are usually much simpler than finite ones
18:22:00 <elliott> but but oklopol
18:22:04 <elliott> how can i feed mandelbrot.b do it
18:22:05 <elliott> *to it
18:22:09 <oklopol> do whom?
18:22:27 <oklopol> good point
18:22:41 <oklopol> you won't be able to prove anything about the halting of mandelbrot.b anyway
18:23:01 <elliott> oklopol: how do YOU know
18:23:03 <elliott> maybe me and j-invariant
18:23:03 <elliott> are
18:23:03 <elliott> the
18:23:05 <elliott> BEST
18:23:07 <elliott> coders
18:23:24 <oklopol> i've heard j-invariant sucks at coding
18:23:37 <oklopol> from him, like, umm, yesterday?
18:23:46 <oklopol> and if he doesn't know, who will
18:23:50 <oklopol> i certainly won't.
18:23:51 <oklopol> but i do.
18:24:01 <oklopol> and you
18:24:02 <oklopol> oh
18:24:07 <oklopol> don't even get me started about you
18:24:07 <elliott> what
18:24:11 <elliott> i am
18:24:13 <elliott> the BEST
18:24:26 <oklopol> you maybe the best, but i ask you: best at *what*?
18:24:45 <elliott> oklopol: code
18:24:57 <oklopol> oh yeah i forgot what we were talking about
18:25:10 <elliott> :D
18:26:58 <elliott> so um oklopol
18:27:04 <elliott> use cled for writing like
18:27:05 <elliott> everything
18:27:06 <elliott> okay?
18:27:18 <oklopol> does it play well with latex
18:27:21 <j-invariant> 18:22 < oklopol> you won't be able to prove anything about the halting of mandelbrot.b anyway
18:27:26 <j-invariant> why not? Isn't that one pretty simple?
18:27:31 <elliott> oklopol: it always uses a condom, why do you ask
18:27:39 <elliott> j-invariant: i think you're a little too enthusiastic about the powers of automated proving
18:28:02 <oklopol> j-invariant: i don't even remember the algorithm
18:28:04 <oklopol> what was it?
18:28:05 <j-invariant> elliott: isn't it basically for(int i = 0; i < 100; i++) { do stuff }
18:28:16 <elliott> j-invariant: well maybe
18:28:27 <oklopol> then it's very possible you will be able to prove stuff about that
18:28:29 <elliott> j-invariant: I think we should use esotope's code partly
18:28:32 <elliott> j-invariant: it has this intermediate format
18:28:39 <j-invariant> sure
18:28:47 <elliott> does a lot of constant folding, adds arithmetic expressions
18:28:47 <elliott> for loops
18:28:52 <elliott> even detects some infinite loops
18:28:57 <elliott> that would be a lot easier to prove on i feel
18:33:29 <elliott> j-invariant: so um... what certificate lang
18:34:00 <j-invariant> elliott: it can be anything. You choose
18:34:06 <j-invariant> I would use Coq but that's just because I have it installed
18:34:07 <elliott> j-invariant: i don't know :D
18:34:16 <elliott> j-invariant: auto-generating Coq sounds a bit painful?
18:34:26 <elliott> j-invariant: I think generating lambda expressions is probably the "easiest" thing
18:34:29 <elliott> rather than automating tactics
18:35:05 <elliott> j-invariant: so i really don't know :)
18:35:30 <j-invariant> probably just program the whole thing in Ltac
18:35:46 <j-invariant> nah that would be really slow
18:35:50 <j-invariant> it does need efficiecy
18:36:00 <elliott> j-invariant: yeah naw
18:36:10 <elliott> j-invariant: I was thinking it'd be a Haskell program
18:36:19 <elliott> j-invariant: of course we _could_ just not generate any certificates, but that's much less fun
18:36:34 <j-invariant> elliott: yes certificate is important
18:36:36 <oklopol> or you could think about that when your program is ready up to that point
18:36:40 <j-invariant> elliott: otherwise there may be a bug in the program
18:36:48 <elliott> oklopol: um it's actually relevant from the start
18:36:52 -!- MigoMipo_ has joined.
18:36:54 <elliott> oklopol: it has to use certificates from the very first line
18:36:56 <oklopol> it's not
18:37:00 <elliott> yes, it is
18:37:02 <oklopol> not
18:37:05 <elliott> because the certificates must be generated as part of the process
18:37:06 <j-invariant> oklopol works without a safety net
18:37:08 <elliott> rather than after the fact
18:37:28 <oklopol> why?
18:37:29 <variable> anyone here using FF 4.x ?
18:37:36 <variable> (and adblockplus)
18:37:43 <elliott> oklopol: because that's how these things work?
18:37:49 <elliott> otherwise it's duplicated work
18:40:04 <oklopol> maybe sure the actual program will have to write certificates from the start, but i don't see why you'd need to know what proof language you'll be using from the start when writing the halting checker
18:40:08 -!- MigoMipo has quit (Ping timeout: 240 seconds).
18:42:20 <elliott> oklopol: because with certificate stuff, every single bit of reasoning involves a certificate
18:42:23 <elliott> you can't just say
18:42:28 <elliott> if foo then doesn't halt else dunno
18:42:30 <elliott> you have to say
18:42:46 <elliott> if foo then (doesn't halt, proof that it doesn't halt in this specific case using general theorem involving "foo") else dunno
18:53:39 <elliott> i'm going to have to make my emacs font smaller
18:53:43 <oklopol> so what you're saying is the finding of the proofs is not actually harder compared to the proving
18:53:45 <oklopol> i mean
18:54:03 <elliott> oklopol: the point is that you can't really do just one.
18:54:05 <oklopol> geh, whatever
18:54:13 <elliott> but yes, doing certificates _is_ actually pretty hard
18:55:08 * Sgeo headaches
18:55:12 <oklopol> well given that j-invariant complains about how hard it is to prove trivial things about every second day, it's hard not to believe that
18:55:13 <Sgeo> Maybe I should eat breakfast
18:55:25 <oklopol> all i'm saying is you don't have to do the search for the proof in a safe way+
18:55:28 <oklopol> *-+
18:55:32 <elliott> oklopol: what do you mean
18:55:47 <elliott> oklopol: also, yes, proving trivial things is hard in Coq etc.
18:55:54 <j-invariant> no it's not hard proving trivial things is it?
18:56:00 <elliott> well
18:56:03 <elliott> oklopol has a very lax definition of trivial.
18:56:05 <j-invariant> I thought I was complaining abuot not having support for certain features
18:56:08 <oklopol> hard to say without knowing what kind of stuff you're going to do
18:56:26 <elliott> i don't think modelling category theory in type theory is
18:56:27 <elliott> "trivial"
18:56:49 <oklopol> j-invariant: well maybe you've once complained about something and it sounded like you were complaining about something that was trivial, but actually you meant there was no nice way to do it or something
18:56:55 <oklopol> i was just being colorful
18:57:05 <oklopol> and yeah, i have a very lax definition of trivial
18:57:53 <oklopol> say existence of infinitely many primes is trivial
18:58:09 <elliott> j-invariant: why doesn't emacs always have two copies of every buffer
18:58:11 <elliott> displaye
18:58:11 <elliott> d
18:58:12 <oklopol> well maybe i would say that's simple
18:58:14 <oklopol> not trivial
19:00:11 <elliott> j-invariant: have you ever used teco, i think everyone should use teco
19:00:13 <elliott> for
19:00:14 <elliott> everything
19:00:17 <elliott> including editing clue
19:00:19 <elliott> who needs cled
19:00:59 <oklopol> it's possible that in the case of bf programs, there isn't really much of a search stage
19:01:54 <oklopol> but hard to say without knowing what specific things you're going to prove the halting of
19:02:49 <j-invariant> I've heard o fit :P
19:02:53 -!- sebbu2 has joined.
19:03:17 <elliott> j-invariant: it's great, because instead of using a program to program
19:03:20 <elliott> j-invariant: you program to program
19:03:26 <elliott> every editor operation is a little mini program :)
19:03:32 <elliott> now you have two problems!
19:04:49 <j-invariant> lol
19:05:04 -!- elliott has quit (Remote host closed the connection).
19:05:31 -!- elliott has joined.
19:05:54 -!- sebbu has quit (Ping timeout: 265 seconds).
19:07:21 <elliott> oklopol: writing cled is so hard why do you do this to me
19:13:35 <oklopol> is for science
19:13:57 -!- BMG has joined.
19:14:34 -!- BMG has quit (Changing host).
19:14:34 -!- BMG has joined.
19:14:39 -!- BMG has changed nick to BeholdMyGlory.
19:17:01 -!- Behold has quit (Ping timeout: 246 seconds).
19:19:22 <elliott> j-invariant: write a program whose only function is to output a proof that it works correctly
19:19:27 <elliott> i.e., only ever outputs correct proofs
19:21:23 <j-invariant> elliott: the more sophisticated an automatical thoerem prover for brainfuck termination is, the further away turings liar program is
19:21:43 <j-invariant> e.g. a really simple termination checker could be reimplemented in brainfuck and lied to in maybe, 3000 symbols.
19:21:52 <j-invariant> But a very advanced one would take 10000 symbols
19:21:59 <elliott> j-invariant: i want to see that program :D
19:22:02 <elliott> that i mentioned
19:22:06 <elliott> /described
19:22:56 <j-invariant> i don't get it. What does it do?
19:23:26 <j-invariant> it would be an implementation fo the termination checker looking at this program AND a quine
19:23:46 <j-invariant> and you fit the quine into the termination checker and do the opposite of what it says
19:24:28 <oklopol> j-invariant: that's not necessarily true, since the formal proof system could be implemented in 5000 symbols, making all your further efforts pointless
19:24:30 <j-invariant> It is a simple matter to make a stronger termination checker which can detect the termination of this pathological program
19:24:42 <j-invariant> oklopol: I don't understand
19:24:58 -!- sebbu2 has changed nick to sebbu.
19:24:59 <j-invariant> oklopol: oh you mean godel instead of turing: Okay, I get it
19:25:30 <oklopol> j-invariant: yeah it's a simple matter, as long as you don't expect to find a proof in the same formal system
19:26:07 <j-invariant> this is only termination certificates though -- the actual termination checker is written in a turing machine
19:26:21 <j-invariant> elliott: hey we should just cut the crap and write the termination checker in brainfuck
19:26:34 <elliott> j-invariant: oh yeah that sounds like a barrel of fun laughs
19:26:40 <j-invariant> elliott: none of this python etc.
19:26:43 <elliott> but i have an even better idea to do first
19:26:45 <elliott> let's hang ourselves
19:26:48 <elliott> or wait wait wait
19:26:48 <j-invariant> lol
19:26:51 <elliott> go bathe in a vat of acid
19:26:54 <j-invariant> LOL
19:26:55 <elliott> omg how can i decide
19:26:58 <elliott> ;_;
19:27:12 <elliott> maybe have all my skin removed slowly before my internal organs are devoured by an angry goat, and then my skeleton is set on fire
19:27:37 <elliott> j-invariant: re i don't get it
19:27:42 <elliott> j-invariant: a program X, with only one function
19:27:53 <elliott> j-invariant: when X is invoked, it returns a proof certificate P
19:28:03 <elliott> j-invariant: this P is a proof of the statement that X works correctly
19:28:14 <elliott> j-invariant: example definition of "works correctly":
19:28:19 <elliott> forall P in Ps, P
19:28:27 <elliott> where Ps is the set of proofs that X outputs
19:28:29 <elliott> except *IsCorrect P
19:28:31 <j-invariant> LOL
19:28:32 <elliott> you get what i mean
19:28:36 * Sgeo wonders how easy or difficult it is to make a self-hosting language
19:28:50 <j-invariant> "I am correct"
19:28:52 <elliott> so basically, it outputs a proof P that proves that every proof X outputs (of which there is only one, P) is correct
19:28:53 <elliott> yep :D
19:29:00 <Sgeo> I guess part of it really does require making a compiler, doesn't it?
19:29:09 <elliott> Sgeo: kinda.
19:29:10 <j-invariant> Sgeo: or just an interpreter
19:29:11 <elliott> not really
19:29:14 <elliott> you could run it all on top of python
19:29:18 <elliott> like you run it all on top of x86
19:30:23 <j-invariant> Sgeo: it's a good feeling though when you delete the original
19:30:24 <Sgeo> But.. that's not that interesting, is it?
19:30:33 <Sgeo> j-invariant, right, that's what I want
19:30:40 <j-invariant> Sgeo: you should do it!!!
19:30:45 <elliott> Sgeo: it's a good feeling when you delete the x86
19:30:50 <elliott> after creating a processor for your language
19:30:52 <elliott> and then delete physics
19:30:58 <j-invariant> ddelete the universe :D
19:31:00 <elliott> after making sure your language is hosted independently of physics
19:31:08 <elliott> basically the idea is to replace everything with your language
19:31:09 <elliott> EVERYTHING
19:31:10 <elliott> no dependencies
19:31:10 <elliott> EVER
19:31:11 <j-invariant> the qustiion is "How low can you go"
19:31:15 <elliott> language limbo
19:31:17 -!- calamari has joined.
19:31:23 <elliott> ^^ GUYS GENIUS PUN?
19:31:27 <j-invariant> I loled
19:32:12 <elliott> j-invariant: deleting the original though, i would never do that
19:32:15 <elliott> what if i lose my interpreter binary
19:32:30 <elliott> or i find a fatal bug
19:32:36 <elliott> that means all compilers have a contagious bug
19:32:38 <elliott> accidental trusting trust :D
19:33:00 <Sgeo> What did the original for gcc use?
19:33:09 <elliott> umm, they just used other C compilers.
19:33:17 <elliott> that's the advantage of doing it for a mostly portable language :P
19:33:20 <j-invariant> type the assembly by hand
19:33:21 <elliott> *with a
19:33:28 <j-invariant> then type the source code
19:33:35 <j-invariant> and check that compilation gives you back the compiler
19:33:35 <elliott> j-invariant: *machine code
19:33:37 <elliott> with a butterfly
19:33:42 <j-invariant> that's what to do if no programming languages exist
19:34:06 <elliott> j-invariant: assembly is a language
19:34:32 <elliott> http://www.reddit.com/r/Minecraft/comments/ezzh4/why_not/c1canyy?context=1 THIS IS THE BEST WORST IDEA EVER
19:34:46 <elliott> lol @ the recipe below that
19:34:49 <Sgeo> Does compiling to LLVM make sense?
19:35:13 <j-invariant> http://www.reddit.com/r/Minecraft/comments/ezzh4/why_not/c1cbsrt <-- haha
19:35:14 <elliott> only if you're a LOSER
19:35:16 <elliott> writing x86 assembly is easier
19:35:17 <elliott> tbh
19:35:17 <j-invariant> you can put these in it
19:35:31 <Sgeo> ??
19:35:40 <elliott> Sgeo: ?
19:35:41 <elliott> j-invariant:
19:35:43 <elliott> j-invariant: i think that
19:35:49 <elliott> j-invariant: one obsidian in the topright
19:35:52 <Sgeo> elliott, are you serious?
19:35:56 <elliott> j-invariant: tnt to the right of that
19:35:56 <Sgeo> x86 is easier?
19:35:59 <elliott> j-invariant: diamond to the right of that
19:36:00 <elliott> Sgeo: yes
19:36:03 <elliott> x86 asm is trivial
19:36:10 <Sgeo> Wait
19:36:10 <elliott> llvm asm is pretty complex :P
19:36:14 <elliott> j-invariant: then below that
19:36:21 <Sgeo> Compilers compile into asm? Wouldn't machine code make more sense?
19:36:21 <elliott> j-invariant: a golden apple on the left
19:36:24 <elliott> ...
19:36:29 <elliott> Sgeo: sure, gcc outputs gnu assembly syntax
19:36:35 <elliott> Sgeo: machine code is just as easy, though :P
19:36:40 <elliott> if you define the instructions as names in your program
19:36:42 <elliott> and registers too
19:36:45 <elliott> that's like a ghetto assembler
19:37:39 <Sgeo> If I compile to x86, then certain things will be platform-dependent
19:37:44 <Sgeo> Erm, OS-dependent
19:37:54 <elliott> Sgeo: doesn't matter.
19:38:03 <elliott> syscalls are easier than anything else anyway.
19:38:07 <elliott> you could just compile to C.
19:38:16 <elliott> Sgeo: llvm assembly is quite platform specific anyway
19:38:18 <elliott> in a lot of cases
19:38:40 <Sgeo> elliott, you won't be able to try my super-cool language that is poorly designed and only exists to prove to myself that I can write a self-hosting language.
19:38:47 <elliott> why no
19:38:48 <elliott> t
19:38:55 <elliott> ?
19:39:04 <Sgeo> elliott, I'm on Windows, and not particularly likely to switch to Linux to do this
19:39:07 <elliott> LOL
19:39:08 <elliott> LOL
19:39:09 <elliott> LOL
19:39:09 <elliott> LOL
19:39:14 <elliott> i don't even know if windows has syscalls
19:39:18 <augur> continuation-based backtracking! \o/
19:39:18 <myndzi> |
19:39:18 <myndzi> |\
19:39:19 <elliott> and if they do calling them will probably be a bitch
19:39:20 <elliott> well
19:39:23 <elliott> you could use dos-style interrupts
19:39:26 <elliott> but those are a bitch to use
19:39:29 <elliott> also, all the assemblers suck
19:39:35 <elliott> lol lol lol @ the idea of doing this on windows
19:40:31 <fizzie> Windows has syscalls but you rarely ever see them; you just call library functions instead.
19:40:45 <elliott> don't they have that fucked up calling convention
19:40:46 <elliott> lool
19:41:37 <fizzie> It's stdcall, which is a bit strange; callee cleans up the stack.
19:42:02 <elliott> "nice"
19:42:12 <elliott> fizzie: wait, so C functions re-push their arguments?
19:42:17 <elliott> to get popped right after?
19:42:19 <oklopol> augur: that's so yesterday
19:42:20 <elliott> that's the most brilliantly stupid thing ... ever
19:42:28 <augur> oklopol: yes but NOT FOR ME
19:42:32 <augur> i GET it
19:42:36 <augur> i grok it man
19:42:39 <augur> its intuitive
19:42:44 <oklopol> didn't you get it yesterday?
19:43:06 <augur> well, i thought i did
19:43:09 <elliott> augur: it's also inefficient
19:43:09 <augur> but i just wrote some code
19:43:14 <augur> and figured it out
19:43:16 <fizzie> elliott: I don't know what that means. In foo(a,b,c) the caller does push c; push b; push a; call foo; and foo itself takes care of popping the arguments. (Unlike cdecl where the caller would adjust the stack back.)
19:43:17 <augur> elliott: oh sure, thats not the point
19:43:19 <oklopol> oh okay
19:43:26 <augur> the point is to understand what people have thought of
19:43:31 <oklopol> then it's not yesterday, then it's today
19:43:42 <oklopol> elliott: you know who else is inefficient?
19:43:44 <elliott> fizzie: that seems actually saner for some things
19:43:47 <elliott> oklopol: my butt?
19:43:50 <elliott> :|
19:43:52 <elliott> OH LOOK AT THAT
19:43:52 <elliott> SUBVERSION
19:44:00 <augur> elliott butt x3
19:44:03 <oklopol> oh shit you won
19:44:06 -!- variable has quit (Read error: Connection reset by peer).
19:44:08 <elliott> augur: lolpedo
19:44:14 <elliott> darn wait it's ephebo now
19:44:15 <fizzie> It looks a bit neater; though it then breaks worse than cdecl if the caller and callee disagree about the number of arguments.
19:44:16 <elliott> less catchy :(
19:44:24 <fizzie> And I think vararg functions are more messy somehow.
19:44:28 <elliott> fizzie: Right.
19:44:35 <augur> elliott: you werent prepubescent when you were 13 either
19:44:40 <augur> but thats not the point
19:44:42 <elliott> augur: HOW DO YOU KNOW
19:44:47 <j-invariant> question: I have some coal and I want to make glass....
19:44:56 <augur> well im guessing you're not weird
19:44:57 <j-invariant> but should I use it to make glass or use it to find more coal?
19:45:02 <oklopol> liking 15yo is not really a philia
19:45:04 -!- variable has joined.
19:45:12 -!- rom9com1 has joined.
19:45:17 <augur> for oklopol, its reality!
19:45:21 <oklopol> :D
19:45:22 * augur licks oklopol
19:45:39 <elliott> j-invariant: well
19:45:42 <elliott> j-invariant: how much coal do you have
19:45:42 -!- rom9com has quit (Ping timeout: 246 seconds).
19:45:51 <j-invariant> elliott: not sure, ilike 30 bits
19:45:53 <elliott> j-invariant: i mean obviously you need to keep a lot for torches and shit
19:45:59 <oklopol> haha keep shity
19:46:16 <elliott> j-invariant: well, 1 coal can make 8 glass out of 8 sand
19:46:27 <elliott> j-invariant: but you need torches to explore, and coal is useful besides
19:46:38 <elliott> j-invariant: getting e.g. 64 coal should not take long at all -- are you mining properly?
19:47:14 <oklopol> j-invariant: coal is very easy to find, just keep a couple boxes full of it to make sure you don't accidentally run out
19:47:26 <j-invariant> elliott: probably not X)
19:47:36 <elliott> j-invariant: how are you mining
19:47:39 <j-invariant> oklopol: how much is a box full?
19:47:47 <elliott> many, many stacks of 64. but only oklopol does that.
19:47:47 <j-invariant> elliott: several different ways, to find out what works well
19:47:51 <elliott> you accumulate tons of it naturally usually
19:48:00 <j-invariant> The most coal I ever found was just by exploring, and noticing it on the sides of hills
19:48:07 <elliott> j-invariant: use the wiki, really :)
19:48:13 <elliott> j-invariant: http://www.minecraftwiki.net/wiki/Tutorials/Mining_Techniques lists all the viable mining techniques
19:48:19 <elliott> j-invariant: apart from that -- you do spelunk right?
19:48:29 <j-invariant> whats that
19:48:38 <elliott> j-invariant: going into caves
19:48:40 <j-invariant> btw I also started a quarry because I wanted obsidian
19:48:40 <elliott> and cavern systems
19:48:43 <elliott> and lighting them
19:48:43 <j-invariant> but that doesn't work great
19:48:44 <elliott> and mining ore there
19:48:50 <elliott> quarry howso
19:48:58 <fizzie> My coal-box only has 7*64. :/
19:48:59 <Sgeo> j-invariant, if you want obsidian, find some lava
19:49:25 <elliott> j-invariant: really, don't be ashamed of reading the wiki, it's not fun to be all "oh how can i get coal" :)
19:49:37 <elliott> and since the game has no real objective... if it's not fun, just look it up
19:50:19 <j-invariant> I have lots of coal
19:50:37 <j-invariant> I was just wondering if I should use it to set up somet mine or just create glass now
19:53:18 <j-invariant> ell? :))
19:55:13 <j-invariant> elliott: I should build a spiral staircase that goes right down to lava
19:55:20 <Vorpal> j-invariant, check the wiki. Reading the wiki is fun.
19:55:42 <Vorpal> j-invariant, a straight one works fine? Though there aren't lava lakes everywhere. They are lava lakes after all
19:55:46 <oklopol> i doubt i have a full box of coal even on my local
19:55:49 <oklopol> prolly close
19:55:59 <Vorpal> (with emphasis on lake)
19:56:06 <elliott> j-invariant: i've built a staircase that goes down to bedrock zomg :P
19:56:10 <oklopol> of course, i use it about once every 5 steps
19:56:57 <Vorpal> elliott, movecraft is fun btw. Sad it doesn't handle redstone, chests or doors yet
19:57:46 <oklopol> on esoserver you can just mine straight down because you can't die :(
19:57:47 <j-invariant> http://www.minecraftwiki.net/wiki/Tutorials/Quarry <-- dunno if this is a troll article or not
19:57:50 <Vorpal> or rotating the boat/shift/aircraft/whatever for turning
19:58:12 <oklopol> WHERE'S THE MINECRAFT IN THAT?
19:58:20 <Vorpal> oklopol, ?
19:58:22 <Vorpal> to me?
19:58:24 <Vorpal> or to j-invariant?
19:58:47 <oklopol> to neither, continuation to what i said earlier
19:59:17 <Vorpal> ah
19:59:41 <Vorpal> j-invariant, well if you are mining for cobble (which probably only happens when you are doing megascale structures) they a quarry can work well
19:59:51 <Vorpal> if you want ores then they are useless
20:00:36 <elliott> do hostile mobs spawn in trees?
20:00:59 <elliott> j-invariant: the Cube is basically a gigantic quarry
20:01:00 <elliott> or, well, will be
20:01:08 <j-invariant> elliott: I have a treehouse and a zombie sometiems spawns next to the tree ontop
20:01:19 <elliott> yeah my treehouse is open air :D
20:01:20 <elliott> maybe a bad idae
20:01:22 <elliott> idea
20:01:28 <Vorpal> j-invariant, do they spawn on leaves or on logs only?
20:01:35 <j-invariant> well it's the ground
20:01:43 <j-invariant> I have a layer of mud ontop of my house to grow trees on
20:02:40 <elliott> if a creeper spawns in the fucking tree i will die
20:02:44 <elliott> j-invariant: mud? you mean dirt? :P
20:02:59 <j-invariant> yes
20:03:05 <Vorpal> elliott, add some glass walls?
20:03:12 <Vorpal> elliott, or light up the tree?
20:03:19 <elliott> Vorpal: um this is first night
20:03:22 <Vorpal> elliott, ah
20:03:23 <elliott> the tree is lit, kinda
20:03:25 <elliott> i can light it more
20:03:37 <Vorpal> elliott, well that is an easy way to protect yourself!
20:04:07 <elliott> there, all lit up
20:04:23 <elliott> [[In Beta, lava is less reactive with horizontal water flows. It also has a chance of forming redstone ore when water runs on top of it [citation needed]. Lava pools without a source will degrade to dirt after a given time period.]]
20:04:42 <elliott> lol, skeleton in the trees >_<
20:04:46 <elliott> don't shoot me
20:04:48 <elliott> (another tree)
20:04:48 <Vorpal> also once movecraft gets fixed I think a yacht might be a cool living place. But at the moment that is not viable.
20:05:00 <elliott> oh god spider noise
20:05:01 <elliott> is it just me
20:05:06 <elliott> or do the monsters always seem to be closer
20:05:07 <elliott> than they are
20:05:08 <elliott> by the sounds
20:05:10 <Vorpal> <elliott> [[In Beta, lava is less reactive with horizontal water flows. It also has a chance of forming redstone ore when water runs on top of it [citation needed]. Lava pools without a source will degrade to dirt after a given time period.]] <-- that sounds made up
20:05:14 <j-invariant> elliott: How do I lift water up?
20:05:18 <elliott> j-invariant: bucket
20:05:22 <j-invariant> e.g. to make an aquaduckt
20:05:26 <Vorpal> elliott, the dirt think I'm pretty sure is wrong for example
20:05:31 <j-invariant> no other way ;9
20:05:32 <j-invariant> :(
20:05:36 <elliott> j-invariant: just make bukkits
20:05:38 <elliott> only requires a few iron
20:05:44 <j-invariant> EIdon't have iron ingots
20:05:47 <Vorpal> 3 iron for a bucket
20:05:51 <elliott> "When you stay in Lava for about 1-2 seconds, your character makes noises which appear to go along to "When the Saints Go Marching In.""
20:05:52 <elliott> what xD
20:05:55 <Vorpal> j-invariant, well can't be done without a bucket
20:06:02 <elliott> iw onder if that's intentional
20:06:02 <Vorpal> elliott, dude that is a troll
20:06:03 <elliott> *i wonder
20:06:06 <elliott> Vorpal: i don't care
20:06:08 <elliott> i don't want it to be
20:06:08 <elliott> also
20:06:11 <elliott> your definition of troll sucks
20:06:12 <elliott> joke != troll
20:06:27 <Vorpal> elliott, well a joke should be funny. That is just pathetic
20:06:33 <elliott> no, it's amusing
20:06:36 <elliott> oh god why do the spiders sound so fucking close
20:06:37 <elliott> are they close
20:06:43 <Vorpal> elliott, you have no sense of humour
20:07:02 <oklopol> i thought he had too much of it
20:07:16 <oklopol> like a sixth sense of humor
20:07:19 <Vorpal> oklopol, well maybe he has an anti-sense of humor
20:07:26 <oklopol> erm
20:07:38 <Vorpal> bbl
20:07:45 <oklopol> do you copy words from other people too? i was just about to correct humor to humour because you used that
20:07:52 <oklopol> but then
20:08:00 <oklopol> you go and spoil it by now having used both
20:08:28 <elliott> wtf pig
20:08:32 <elliott> how did you get on top of that tree
20:08:32 <cheater99> i just totally instantiated my own oklopol
20:08:56 <j-invariant> lol
20:09:01 <cheater99> but no one knows
20:09:06 <cheater99> he's in my CLOSURE.
20:09:19 <oklopol> i KNEW you were gay
20:09:28 <cheater99> wat
20:09:33 <elliott> :D
20:09:42 <elliott> maybe cheater99 is augur
20:09:45 <elliott> this theory is backed by EVIDENCE
20:09:46 <cheater99> what sort of gay hating is that now
20:09:55 <oklopol> i'm only useful for 7 things, and 6 of them i can do on this channel.
20:10:08 <elliott> the seventh is knitting
20:10:10 <augur> is not
20:10:19 <elliott> is it not? what is the seventh then
20:10:40 <cheater99> elliott: not being here
20:10:45 <cheater99> he's good for that.
20:10:47 <elliott> he can do that
20:10:50 <elliott> it's called af
20:10:50 <elliott> k
20:10:59 <Sgeo> I'm useful for, um
20:11:12 <cheater99> yea but he can't do that on the channel
20:11:21 <cheater99> obviously by definition.
20:11:38 <elliott> [[4.) Continue the process of mining a layer, and then another, until you hit bedrock. This may take a few days of vigorous playing to accomplish, but your earnings will make it well worth it. Most quarries yield an average of 150 stacks of coal, 50 stacks of iron ore, 20 stacks of gold ore, 5 stacks of obsidian, and a maximum of 1 stack of diamond gems, though these results vary with the width, depth and location of your quarry.[cita
20:11:38 <elliott> tion needed] (see discussion section)]]
20:11:39 <elliott> hmmhmm
20:11:39 <j-invariant> 4 bits of coal produce 2 glass blocks???
20:11:46 <elliott> j-invariant: dude...
20:11:54 <elliott> j-invariant: 1 bit of coal = 8 output; 1 bit of sand = 1 output
20:12:01 <j-invariant> ??
20:12:04 <elliott> j-invariant: N sand -> N glass, requiring ceil(N/8) coal
20:12:04 <j-invariant> http://www.minecraftwiki.net/wiki/File:Smeltingmenu.png
20:12:12 <elliott> j-invariant: that is in progress
20:12:16 <elliott> as you can plainly see by the arrow
20:12:18 <elliott> and the fires
20:12:23 <elliott> it takes time to smelt
20:13:11 <Sgeo> Why would you use coal to smelt?
20:13:26 <Sgeo> Wood works and is renewable
20:13:34 <j-invariant> really??
20:13:57 <Sgeo> Note: Just because what I said is true, doesn't make it a good idea.
20:15:14 <elliott> j-invariant: Sgeo is being stuepid, coal is far more efficient & practical to use for smelting.
20:15:26 <elliott> j-invariant: See http://www.minecraftwiki.net/wiki/Furnace#Fuel_efficiency.
20:15:57 <Sgeo> Until the day you have to go on tremendously long minecart rides to get coal
20:15:58 <elliott> ofc if you have some lava... :D
20:16:02 <elliott> Sgeo: what
20:16:03 <j-invariant> lava can smelt?
20:16:05 <elliott> getting coal is easy
20:16:09 <elliott> j-invariant: a bucket of it, yes, it also destroys the bucket
20:16:11 <elliott> j-invariant: hideously impractical
20:16:14 <elliott> nobody does it
20:19:52 <Phantom_Hoover> <Sgeo> Wood works and is renewable ← only Vorpal cares about this, and he couldn't be bothered.
20:19:59 <elliott> Phantom_Hoover: http://www.minecraftforum.net/viewtopic.php?f=35&t=20891
20:20:04 <elliott> Oh, has the Sustainable project been canceled, Vorpal?
20:20:07 <elliott> *cancelled
20:20:25 <Phantom_Hoover> I presume so.
20:20:26 <elliott> Phantom_Hoover: tl;dr guy wipes cave sounds due to being a pussy.
20:20:27 <Vorpal> elliott, no more cancelled than most of your code project s:P
20:20:30 <Vorpal> projects *
20:20:31 <elliott> YOU TOO COULD FOLLOW IN HIS FOOTSTEPS
20:20:33 <elliott> Presume why?
20:20:41 <Phantom_Hoover> Perhaps I should warp out to (4000,4000) and check.
20:20:43 <Vorpal> elliott, but it is suspended
20:20:53 <Vorpal> elliott, simply because lava is no longer renewable
20:21:02 <Vorpal> there is no renewable light source any more
20:21:08 <Vorpal> sure, burning log
20:21:17 <elliott> Is that where it was going to be?
20:21:18 <Vorpal> but what about making it burn in the first place?
20:21:31 <Vorpal> it was near 4000,4000
20:21:34 <Vorpal> not at it
20:21:40 <Vorpal> I don't know exact coords
20:21:46 <Vorpal> just how to walk from 4000,4000 to get there
20:21:48 -!- calamari has quit (Quit: Leaving).
20:22:00 <Phantom_Hoover> Someone tell me in which series Red Dwarf ceases to be worth watching.
20:22:50 <elliott> Phantom_Hoover: The eighth series is meant to be a bit naff.
20:25:14 <Vorpal> <elliott> getting coal is easy <-- well, sgeo is right. some day you will exhaust all coal in the area near your base. This will however take a very long time. Probably months of mining in that area non-stop.
20:25:40 <Vorpal> in practise I doubt it will be a problem unless you keep a word for that long time
20:25:44 <Vorpal> and I doubt that about you
20:27:27 <nooga> i've just finished 50x50x3 hall under the sea
20:27:37 -!- Cocytus has joined.
20:27:59 <Vorpal> elliott, those cave sounds are nice. They remind me of a cross between myst and nwn somehow.
20:28:36 -!- Cocytus has left (?).
20:28:57 <elliott> Phantom_Hoover: HOW GOES GRAVITY.LISP.
20:29:03 <elliott> nooga: That's less than 128x128x128.
20:29:13 <elliott> nooga: Wait, x3? As in, only 3 tall?
20:29:14 <Phantom_Hoover> elliott, it doesn't go at all.
20:29:18 <elliott> Phantom_Hoover: PAH
20:29:27 <Phantom_Hoover> 3 metres tall is plenty!
20:29:32 <elliott> :P
20:29:39 <elliott> nooga: Sgeo: Buy the damn game and do drudge work on the Cube.
20:30:05 <Phantom_Hoover> If we have enough drudge workers, we can just mine it out by hand!
20:30:07 <elliott> Sgeo: http://cobolforgcc.sourceforge.net/
20:30:18 <Vorpal> nooga, glass?
20:30:28 <Vorpal> nooga, if not, it isn't awesome enough for the roof
20:30:46 <elliott> Phantom_Hoover: Say a miner can reach the bottom of any square of map in 100 seconds.
20:30:53 <elliott> Phantom_Hoover: Say you have 10 people on the job.
20:31:08 <elliott> Phantom_Hoover: There are 16,384 such squares to do.
20:31:10 <j-invariant> What is the cube?
20:31:32 <nooga> Vorpal: deep under the sea
20:31:40 <Phantom_Hoover> j-invariant, elliott's slightly Freudian construction project.
20:31:41 <nooga> around level 16
20:31:41 <Vorpal> elliott, isn't that 45 hours per person?
20:31:43 <elliott> Phantom_Hoover: tl;dr 45 and a half straight hours.
20:31:46 <Vorpal> elliott, try again
20:31:57 <Vorpal> elliott, what about 128 workers?
20:32:01 <elliott> j-invariant: A 128 wide, 128 high, 128 deep cube in the ocean, made out of glass, lit by lava.
20:32:05 <elliott> Phantom_Hoover: What's Freudian about it.
20:32:09 <Vorpal> nooga, so not at the sea bottom?
20:32:14 <nooga> no
20:32:16 <Phantom_Hoover> elliott, COMPENSATING FOR SOMETHING?
20:32:21 <Vorpal> nooga, not awesome enough :P
20:32:26 <elliott> My genitalia are not cuboid.
20:32:31 <Vorpal> nooga, everyone dug under the sea in terrains
20:32:48 <elliott> Phantom_Hoover: But yeah, even with 10 people working on it constantly and several breakings of the laws of physics, it would take 45 hours to mine out the Cube.
20:32:52 <elliott> What I'm saying is: TNT kit.
20:32:54 <nooga> i hate minecraft
20:32:59 <elliott> nooga: then why did you make it
20:33:15 <nooga> my during the hours that took me to dig it
20:33:24 <Phantom_Hoover> elliott, OK, but you're clearly compensating for the fact that you're 4 feet tall IRL.
20:33:28 <nooga> my gf got really mad at me
20:33:38 <nooga> and i didn't earn a penny
20:33:43 <nooga> because coding is so boring
20:33:47 <elliott> Phantom_Hoover: That is true.
20:34:12 <elliott> j-invariant: MORE AWE AT THE CUBE PLZ
20:34:15 <Phantom_Hoover> <Vorpal> nooga, everyone dug under the sea in terrains ← terrains?
20:34:32 <elliott> There should be underground biomes.
20:34:35 <Vorpal> Phantom_Hoover, err, good questions
20:34:42 <Vorpal> question*
20:34:59 <Phantom_Hoover> elliott, there is that thing which fiddles with the terrain gen's internal parameters
20:34:59 <Vorpal> Phantom_Hoover, I think I'm a bit pluralish today
20:35:14 <Phantom_Hoover> (SSP only, though.)
20:35:18 <elliott> Phantom_Hoover: BiomeTerrain or whatever?
20:35:24 <Phantom_Hoover> No idea.
20:35:26 <elliott> Phantom_Hoover: I've wanted to try that for a while now. It looks way better than Notch's generator.
20:35:35 <Phantom_Hoover> Vorpal, everyone dug under the sea in terrain?
20:35:39 <elliott> Phantom_Hoover: Generates much larger, smoother biomes and the like. Lots of tweakable parameters.
20:35:46 <Vorpal> Phantom_Hoover, well it is /slightly/ better
20:35:55 <elliott> Phantom_Hoover: That photo I linked of a highlands scene (saying it was a good argument for Better Grass) was made with it.
20:35:59 <Vorpal> Phantom_Hoover, if you define terrain to "solid blocks" then it makes sense :P
20:36:08 <Phantom_Hoover> elliott, I don't remember that.
20:36:16 <elliott> It was literally days ago.
20:36:29 <Vorpal> elliott, link to that photo? I don't remember seeing that photo
20:37:24 <elliott> "I'm the sort of person who's done the Red Cross First Aid course twice and so I knew what to do and was almost immediately compressing his chest to the rhythm of the Bee Gees' Staying Alive with the phone operator counting along with me. No, I'm not being funny. The rhythm of that song is ideal for CPR."
20:37:33 <elliott> Sgeo: Never perform CPR unless you do that.
20:38:08 <j-invariant> elliott: sounds amazing
20:38:08 <elliott> [[Alternatively, it's the same BMP as Queen's "Another One Bites the Dust" and Pink Floyd's "Another Brick in the Wall Part II".]]
20:38:20 <elliott> j-invariant: yeah, we've cleared, like, 10 lines of sea :P
20:38:23 <elliott> like moses, except really slow
20:38:26 <j-invariant> 10??
20:38:29 <fizzie> Vorpal: You said it looked too flat, IIRC.
20:38:29 <elliott> j-invariant: and excavation is... slow
20:38:30 <elliott> j-invariant: yes, 10
20:38:32 <j-invariant> I've done more than 10
20:38:34 <elliott> j-invariant: as in, 10 lines of 126 long
20:38:40 <elliott> j-invariant: about 10 deep each
20:38:51 <elliott> j-invariant: i doubt you have
20:39:05 <elliott> j-invariant: that's about 10*10*126 = 12600 blocks placed
20:39:08 <elliott> to clear
20:39:13 <elliott> very roughly
20:39:55 -!- Zuu has quit (*.net *.split).
20:39:59 -!- Vorpal has quit (*.net *.split).
20:40:06 -!- lifthrasiir has quit (*.net *.split).
20:40:08 -!- sftp has quit (*.net *.split).
20:40:08 -!- HackEgo has quit (*.net *.split).
20:40:08 -!- EgoBot has quit (*.net *.split).
20:40:18 -!- Ilari_antrcomp has quit (*.net *.split).
20:40:18 -!- Ilari has quit (*.net *.split).
20:40:24 <elliott> Phantom_Hoover: http://imgur.com/om0iL This is fully functional, with CraftBook.
20:40:24 <elliott> Discuss superiority to Vorpal's gate.
20:40:55 <Phantom_Hoover> Clearly superior. Also irrelevant if Vorpal doesn't have CraftBook.
20:41:45 <elliott> It's on his test server and he was talking about craftbook before.
20:41:47 <elliott> And how awesome it was.
20:41:50 <elliott> So yes, he does.
20:42:43 -!- Zuu has joined.
20:42:43 -!- Vorpal has joined.
20:42:43 -!- lifthrasiir has joined.
20:42:43 -!- sftp has joined.
20:42:43 -!- HackEgo has joined.
20:42:43 -!- EgoBot has joined.
20:42:43 -!- Ilari_antrcomp has joined.
20:42:43 -!- Ilari has joined.
20:43:18 -!- pikhq has quit (Excess Flood).
20:43:21 <elliott> Phantom_Hoover: In which Notch actually responds to feedback: http://www.reddit.com/r/Minecraft/comments/ezpw5/lots_of_new_info_including_cake/c1c7grn
20:43:22 -!- pikhq_ has joined.
20:43:43 <Phantom_Hoover> :O
20:43:56 <j-invariant> whe n you break a bit of glass you don't get it back :(
20:44:03 <elliott> j-invariant: INDEED
20:44:07 <elliott> http://www.youtube.com/watch?v=2lsFN5DgoLc This is the silliest thing.
20:44:26 <elliott> (Old, apparently.)
20:45:16 <elliott> http://www.youtube.com/watch?v=Zv6GVDu46ls I hypothesise that sound mods are inherently hilarious.
20:45:20 <elliott> Cow cow cow cow cow.
20:49:29 <elliott> http://www.reddit.com/r/Minecraft/comments/drvm8/my_experiment_with_modifying_the_minecraft_sound/c12gnct ;_;
20:52:08 <j-invariant> LOL
21:00:12 -!- jix has quit (Ping timeout: 250 seconds).
21:01:10 <j-invariant> gcd(F_m,F_n)=F_{gcd(m,n)}
21:01:31 <elliott> cool
21:01:35 <elliott> now use that to compute gcd
21:03:12 <j-invariant> hmm
21:03:23 <j-invariant> fibonacci numbers are weird
21:09:04 -!- jix has joined.
21:11:50 <Vorpal> elliott, is the server down?
21:12:18 <Vorpal> hm up now anyway
21:12:18 -!- rom9com1 has left (?).
21:12:46 <Vorpal> ineiros, are you skyping?
21:18:08 -!- calamari has joined.
21:20:07 -!- ais523 has quit (Remote host closed the connection).
21:27:15 <Vorpal> ineiros, what the hell are you doing?
21:35:08 <Phantom_Hoover> He's toying with you.
21:35:15 -!- Mathnerd314 has joined.
21:46:01 <elliott> Phantom_Hoover: ?
21:46:16 <Phantom_Hoover> With Vorpal.
21:47:00 <Vorpal> Phantom_Hoover, is that supposed to be funny? It isn't really.
21:47:48 <Phantom_Hoover> Well, now you've made it even *less* funny.
21:48:03 <Vorpal> Phantom_Hoover, your own fault for not making it funny to begin with
21:49:04 <Vorpal> Phantom_Hoover, besides movecraft got updated. Now doors are supposed to work (nothing done on chests yet though)
21:49:14 <Vorpal> Phantom_Hoover, also submarines
21:49:23 <elliott> j-invariant: help me design my language :P
21:49:34 <j-invariant> what's this??
21:49:54 <elliott> j-invariant: a language! btw have you read any more of the axiom info?
21:50:02 <j-invariant> eyah a little
21:50:20 <elliott> j-invariant: is it close to what you were thinking of?
21:50:27 <j-invariant> no
21:50:33 <elliott> j-invariant: no
21:50:33 <elliott> ?
21:50:51 <j-invariant> I can learn form it
21:51:07 <elliott> j-invariant: isn't it a dependent symbolic CAS? :P i mean that's my impression of it
22:01:03 <elliott> j-invariant: i'm actually curious
22:01:18 <j-invariant> elliott: youo're right
22:01:27 <elliott> j-invariant: what does your design have different to axiom? :)
22:04:38 <elliott> ugh i have to rename some of my methods...
22:04:51 <elliott> j-invariant: can you fork ghc and add ml-style modules please, then i would always use haskell
22:05:59 <j-invariant> elliott: Yeah I think I would change a bit moore than that :P
22:06:23 <elliott> j-invariant: Well ... ML modules lets you chuck out typeclasses :P
22:06:44 <elliott> Sort of.
22:08:45 <j-invariant> elliott: yeah, something that subsumes GADTs, Typeclasses and Modules
22:08:58 <elliott> j-invariant: you mean like dependent records? :P
22:09:23 <j-invariant> not sure
22:09:33 <elliott> j-invariant: sure
22:10:00 <elliott> j-invariant: dependent records do powerful ML-style modules; powerful ML-style modules do typeclasses with, like, one bit of magic; and dependent inductive types are of course basically GADTs
22:10:33 <elliott> j-invariant: (the one bit of magic I think is this: a module signature can specify one of its exported values is "magical"; whenever a value of that type is needed as an implicit module parameter (a notion added just for this), that value is used)
22:10:56 <elliott> j-invariant: for instance, the module implementing integers would have a magical value of type Ring Z
22:11:02 <elliott> and then some function might be like
22:11:27 <elliott> lolRingFunction : forall T, [Ring T] -> ...
22:11:33 <elliott> where [] means "magic module param"
22:11:35 <elliott> then
22:11:38 <elliott> lolRingFunction (some Z)
22:11:42 <elliott> would auto-specify that (Ring Z) value
22:11:46 <j-invariant> elliott: hey what about
22:11:53 <j-invariant> lolRingFunction : Ring T, ...
22:11:54 <elliott> of course having two magical values of the same type in your current module scope is verboten
22:12:03 <j-invariant> use typeclasses *as* quantifiers
22:12:04 <elliott> j-invariant: you mean as the syntax?
22:12:08 <elliott> that's a nice idea
22:12:14 <elliott> would keep the verbosity down
22:12:24 <elliott> j-invariant: maybe something like "the" though
22:12:28 <elliott> lolRingFunction : the Ring T, ...
22:15:18 <elliott> j-invariant: oh god, I have created an image that could give Douglas Hofstadter an aneurysm
22:15:42 <quintopia> a basilisk image?
22:15:49 <elliott> yes, but Hofstadter-only
22:15:54 <elliott> behold
22:15:54 <elliott> http://i.imgur.com/VqcIS.png
22:15:55 <elliott> RECURSION
22:15:59 <elliott> i hear it blows his mind
22:16:08 <quintopia> too bad i'm not him
22:16:12 <quintopia> i like being blown
22:16:16 <j-invariant> hehe
22:16:33 -!- hiato has quit (Ping timeout: 260 seconds).
22:16:33 <quintopia> agh, tk
22:16:41 <j-invariant> obviously the egytions understood recursion
22:16:53 <elliott> egytions :D
22:17:03 <j-invariant> I'm making a pyramid in minecraft
22:17:12 <j-invariant> it's glass on the inside but sand on the outside
22:17:14 <elliott> note to self, add a separate background colour for selected vs. active... hard to remove those lists without knowing what you have selected
22:18:41 <elliott> editing these nested expressions is slow :D
22:18:53 <elliott> j-invariant: nice
22:19:54 <quintopia> i would like to see an upside-down floating sand pyramid in minecraft
22:20:08 <j-invariant> it's not upside down :(
22:24:50 <elliott> oklopol: is "foo ~ {}" valid Clue?
22:25:24 -!- hiato has joined.
22:26:14 <Vorpal> <quintopia> i would like to see an upside-down floating sand pyramid in minecraft <-- possible with torches
22:26:27 <Vorpal> quintopia, if it floats just above a torch that is
22:26:36 <Vorpal> quintopia, why not make one yourself?
22:27:50 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
22:27:54 <quintopia> someday
22:28:20 <elliott> quintopia: sometime
22:28:35 <Vorpal> elliott, somewhere
22:29:17 <Vorpal> (wait, is none else going to continue this chain?)
22:29:21 <Vorpal> (bbl)
22:37:28 <elliott> oklopol: so hey, cled is ugly as fuck :D
22:40:23 <elliott> j-invariant: http://i.imgur.com/CP1vV.png can you figure out what's going on here :D
22:40:26 <elliott> even i have troubles
22:41:29 <j-invariant> I don't know what [] does.. looks nice though :D
22:43:40 <elliott> j-invariant: it's just a list
22:43:50 <elliott> j-invariant: ([] (1) (2) (3)) there is [1 2 3]
22:44:18 <elliott> j-invariant: basically, that screenshot is the really ugly representation of {. 3 [7 44 1] -> [[1] 3 [7 44]] } ... with some highlighting oddities
22:44:32 <elliott> j-invariant: i think i'm starting to see why this kind of editing is unpopular
22:44:33 <quintopia> what is cled? some derivative of clue?
22:45:10 <elliott> quintopia: cled is my semantic AST editor for clue ... it happened after i wanted to write a clue-mode for emacs
22:45:15 <elliott> and it's became, well, this monstrosity
22:45:18 <elliott> *become,
22:45:26 <quintopia> time to kill it dead?
22:45:28 <elliott> 453 lines of folly and counting
22:45:37 <elliott> quintopia: nO
22:45:38 <elliott> *NO
22:45:41 <elliott> it's the platonically perfect clue editor
22:45:43 <elliott> it just sucks, is all
22:45:51 <elliott> but i'm gonna develop it to completion anyway :D
22:45:58 <j-invariant> good
22:46:06 <quintopia> only because clue sucks and not because there's anything wrong with the editor, yes?
22:46:21 <elliott> quintopia: no, clue is amazing
22:46:23 <elliott> my editor sucks and ROCKS!
22:46:27 <elliott> and sucks
22:47:03 <quintopia> ehird man speak with forked tongue. need whiskey and migraine pill for good medicine.
22:47:14 <Phantom_Hoover> Someone tell me which books of Known Space are any good.
22:47:16 <elliott> concur
22:47:43 <elliott> <PH, daily> Someone point me to a list of the reasons X sucks. <PH, daily> Someone tell me what subset of Y is good.
22:47:45 <pikhq_> Phantom_Hoover: *
22:47:53 <Phantom_Hoover> All of them?
22:48:16 <Phantom_Hoover> What about the infamous third book in the Ringworld series?
22:48:17 -!- Wamanuz has quit (Ping timeout: 240 seconds).
22:48:29 <elliott> http://www.minecraftforum.net/viewtopic.php?f=25&t=132717 Nice.
22:48:30 <Phantom_Hoover> <elliott> <PH, daily> Someone point me to a list of the reasons X sucks. <PH, daily> Someone tell me what subset of Y is good. ← BLATANT LIES
22:48:39 <pikhq_> Phantom_Hoover: What do you mean, "what about it"?
22:48:40 <elliott> FastRender: more efficient chunk queue processing.
22:48:40 <elliott> UniText: a completely rewritten text renderer. It's faster and supports Unicode, although the Unicode font files are not included with this release.
22:48:40 <elliott> Fewer glClears: erasing the entire screen is expensive. This mod avoids it when possible.
22:48:42 <elliott> Better chunk drawing code: Removing a few useless transforms from the chunk rendering code lets all visible chunks be drawn in a straightforward manner.
22:48:47 <elliott> I like this Scaevolus guy.
22:49:09 <elliott> Phantom_Hoover: INCIDENTALLY, can you buy me a new GPU?
22:49:16 <elliott> I plan to configure Minecraft to be utterly insane soon.
22:49:18 <Phantom_Hoover> pikhq_, i.e. it's infamous for being a perfect instance of quality being inversely proportional to place in the series?
22:49:59 <elliott> An HD texture pack if I find one I like, far distance, fancy rendering, Better Light, that shader mod with depth of field, perhaps also with that lighting shader if I can find it and make it work together...
22:50:05 <elliott> Mipmapping if it helps.
22:50:53 <nooga> hah
22:50:55 <pikhq_> Phantom_Hoover: I don't recall it being bad, though.
22:50:58 <nooga> my 50x50 trap works
22:51:09 <pikhq_> Definitely not as good as the first, mind.
22:51:31 <nooga> i've get approx 24 sulfur in 15 min
22:51:59 <elliott> nooga: lol noob
22:52:18 <j-invariant> ???
22:52:24 <elliott> nooga: http://www.youtube.com/watch?v=RiJh5fpWPAo
22:52:26 <j-invariant> I have 1 sulfer after 2 weeks playing
22:52:33 <elliott> j-invariant: kill creepers
22:52:37 <elliott> and build a mob trap
22:52:41 <elliott> again, read the wiki :P
22:53:11 <elliott> nooga: build that and then come back
22:53:15 <j-invariant> what the hell is happening in that video! LOL
22:53:29 <j-invariant> oh
22:53:37 <j-invariant> the reason they die is because of falling from such a height
22:53:44 <elliott> yes
22:53:48 <elliott> j-invariant: watch the rest of it :)
22:53:49 <j-invariant> ummm.... that must have taken a while to build
22:53:54 <elliott> j-invariant: basically: they don't spawn on steps
22:53:58 <elliott> so the ground below is safe
22:54:02 <elliott> and then the huge dome catches them
22:54:04 <elliott> and the only way is down
22:54:09 <elliott> so they walk down and then fall inside
22:54:17 <elliott> resulting in loot
22:54:20 <j-invariant> that's crazy wtf
22:54:29 <j-invariant> how the hell did he have the patience to build it
22:54:29 <elliott> since they're spawning all the time at night, they fall down at a crazy rate :)
22:54:30 <elliott> well
22:54:31 <elliott> er
22:54:33 <elliott> they don't walk down
22:54:35 <elliott> there's water
22:54:37 <elliott> obviously
22:54:39 <elliott> to carry them
22:54:41 <elliott> j-invariant: who knows :D
22:54:55 <elliott> tl;dr mobs spawn in big water slide all night, ride uncontrollably, fall down, die, drop loot.
22:55:50 <elliott> j-invariant: building mob traps is not so hard though
22:56:07 <elliott> j-invariant: basically, you want an easily steppable-upon bit of water that mobs will go into, which then leads down to
22:56:08 <elliott> C C
22:56:09 <nooga> elliott: @ this clip... i thought that mobs don't spawn on water
22:56:11 <elliott> where space is nothing
22:56:15 <elliott> and the two Cs are catcuses
22:56:21 <elliott> nooga: dunno... i think they do
22:56:30 <elliott> nooga: but besides, there's those little sticky out bits of cobbles fro them to spawn on anyway
22:56:31 <elliott> *for
22:56:35 <elliott> j-invariant: this crushes the mobs
22:56:39 <elliott> j-invariant: and they'll drop loot into the stream
22:56:43 <elliott> j-invariant: which you then route into your base
22:56:47 <Phantom_Hoover> elliott, FWIW, that Optimine thing has mucked up Better Light.
22:56:54 <elliott> Phantom_Hoover: you apply better light afterwards
22:56:57 <elliott> Phantom_Hoover: not before
22:57:04 <elliott> j-invariant: so basically mobs will keep walking in, getting crushed by the cactus, and their loot will float into a pool in your base
22:57:12 <elliott> j-invariant: that won't be hugely fast, but it'll be pretty good
22:58:05 <elliott> j-invariant: oh and
22:58:14 <elliott> j-invariant: look for natural cobblestone while mining, and also mossy cobblestone
22:58:19 <elliott> j-invariant: it'll be a dungeon
22:58:22 <j-invariant> oh ok
22:58:22 <elliott> j-invariant: with a mob spawner inside
22:58:31 <elliott> j-invariant: now consider: dig out the floor beneath that mob spawner
22:58:45 <elliott> j-invariant: so much that they die of fall damage
22:58:47 <elliott> and route a path in
22:58:49 <j-invariant> http://www.youtube.com/watch?v=H8xs53VmFjc neat
22:58:53 <elliott> j-invariant: mob spawners only spawn one type of monster
22:58:54 <elliott> but..
22:59:09 <Phantom_Hoover> [[...these people are trying to make money from an idea that does not belong to them.]] — An Idiot on the MC boards.
22:59:21 <elliott> j-invariant: e.g. if it's a spider spawner
22:59:24 <elliott> j-invariant: you could get shitloads of string
23:01:02 <elliott> j-invariant: that door machine is hilarious
23:01:17 <elliott> j-invariant: if you tab away it sounds like venetian snares... sorta
23:08:59 <Vorpal> haha, nice video
23:13:51 -!- Phantom_Hoover has quit (Quit: Leaving).
23:14:28 <elliott> j-invariant: btw: http://www.reddit.com/r/Minecraft/comments/evwk8/does_anyone_know_how_to_make_a_very_simple_but/
23:14:31 <elliott> j-invariant: stuff about mob traps
23:15:16 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
23:20:04 <elliott> guide to minecraft: http://i.imgur.com/i1YWC.png
23:25:33 <Sgeo> Is Notch going to remove indefinitely burning logs?
23:25:50 <elliott> The probability of that is somewhere in the region of 0.
23:25:58 <Sgeo> Why?
23:26:19 <elliott> Because there's something like seventeen hundred billion fireplaces, and also, very little reason to fix it :P
23:27:36 -!- marcules has quit (Quit: -).
23:27:50 <elliott> nooga: pics of your trap?
23:27:51 -!- FireFly has quit (Quit: swatted to death).
23:29:02 <Sgeo> elliott, what are your thoughts on Clean?
23:29:32 <elliott> an interesting curiosity and — mere curiosity. uniqueness typing is interesting.
23:29:37 <elliott> learn haskell instead.
23:29:54 <elliott> also clean has some REALLY weird bits
23:29:54 <elliott> like
23:29:58 <elliott> you write (a -> b) -> [a] -> [b]
23:29:58 <elliott> as
23:30:01 <elliott> (a -> b) [a] -> [b]
23:30:02 <elliott> why???
23:30:08 <elliott> that doesn't even make any sense and takes special casing
23:30:17 <Sgeo> elliott, are Clean functions curried?
23:30:22 <elliott> yes
23:30:31 <elliott> also (x:xs) is [x:xs], which, again, means that a single list with the single element (x:xs) is [[x:xs]]... which is just plain confusing and stupid
23:30:36 <elliott> also infix o weird me out
23:30:40 <elliott> but these are all syntactical differences.
23:32:30 <Sgeo> Maybe uniqueness typing is what will bring me back into the purely functional world
23:32:34 <cheater99> yea that's stupid
23:32:37 <Sgeo> [Or maybe I'll be bored to tears]
23:32:51 <cheater99> Sgeo: stop talking in trivial lists.
23:33:31 <j-invariant> elliott: I trapped some cows in a cave but they disappeared :(
23:33:37 <elliott> i kind of feel embarrassed for Sgeo on behalf of... everyone
23:33:38 <elliott> j-invariant: whut
23:33:39 <elliott> j-invariant: howso
23:33:41 <j-invariant> is it not possible to make a farm?
23:33:53 <j-invariant> I just dug this small cave into a hill and trapped the cows in there
23:34:03 <elliott> j-invariant: Of course it is: http://imgur.com/a/pt8v5
23:34:05 <Sgeo> elliott, what cheater99 said was a joke, afaict.
23:34:10 <elliott> I suppose they might die in low light.
23:34:12 <Sgeo> I think
23:34:13 <elliott> Sgeo: And?
23:34:31 <j-invariant> hahaha I need one of these
23:34:37 <j-invariant> elliott: I wonder why they disappeared
23:34:59 <elliott> j-invariant: try building a small but ~5 deep pit instead
23:35:03 <elliott> and put a torch on the walls
23:35:04 <elliott> get them in there and see
23:35:14 <elliott> j-invariant: if you walked too far away i guess they could disappear... but you'd have to walk a few chunks
23:35:16 <elliott> so probably not
23:35:18 <elliott> *quite a few
23:35:21 <j-invariant> oh :(
23:35:34 <j-invariant> elliott: yeah I roam very far so that might not be worth doing then
23:35:38 <elliott> j-invariant: lol no
23:35:40 <elliott> j-invariant: i doubt it
23:35:48 <elliott> j-invariant: it's like 16 chunks
23:35:54 <elliott> so like
23:35:57 <elliott> walking 256 away maybe
23:36:01 <elliott> i guess it's easy but
23:36:11 <elliott> j-invariant: i think i'm wrong
23:36:54 <elliott> "Mobs spawn no closer than 24 blocks and disappear if they are more than 4 chunks away from the player."
23:36:55 <cheater99> j-elliott: why not just play farmville?
23:37:00 <elliott> j-invariant: ok if you walked far away.
23:37:07 <elliott> cheater99: because minecraft is more than farming? :P
23:37:12 <elliott> j-invariant: build a mob trap :D
23:37:44 <j-invariant> im going to sleep ;)
23:37:46 <cheater99> yes, use minecraft to make mafiaville or whatever they call it
23:37:54 <cheater99> gangstaville?
23:38:04 <j-invariant> I finished building a pyramid though
23:38:09 <elliott> j-invariant: how big?
23:38:24 <j-invariant> it's only like 6 high
23:38:52 <elliott> j-invariant: really? that shouldn't have took that long to build... unless it has like a flat top and is really wide
23:38:57 <elliott> screenshot?
23:39:10 <j-invariant> no it's just a tiny pyramid
23:39:12 <cheater99> you should now recreate von dniken's mythology around it
23:39:27 <elliott> j-invariant: how long did it take to build?
23:39:43 <j-invariant> elliott: dunno I did other stuff in between
23:39:51 <elliott> hehe
23:40:04 <cheater99> is there like
23:40:08 <cheater99> automation for minecraft?
23:40:30 <j-invariant> cheater99: interesting
23:40:34 <elliott> cheater99: there's redstone.
23:40:47 <elliott> bluestone would let you build a hideously complex autominer but it doesn't exist and never will >:)
23:41:08 <cheater99> minecraft just sounds real fucking boring to me in that you have to sit around clicking stuff
23:41:28 <cheater99> it's like killing wild pigs in a forrest in wow
23:41:28 -!- hiato has quit (Read error: Operation timed out).
23:41:44 <cheater99> 1 experience point per click or something equally dumb
23:41:51 <elliott> cheater99: umm what
23:41:53 <cheater99> (not that i ever played wow, but you know what i mean)
23:41:55 <elliott> you don't kill pigs generally
23:41:56 <elliott> oh
23:42:08 <elliott> well er no because in MC most of the time is spent doing shit you want
23:42:10 <cheater99> elliott: yeah, but that's what it feels like
23:42:11 <elliott> i.e. building shit
23:42:14 <elliott> no it doesn't
23:42:17 <elliott> you've clearly never played
23:42:21 <cheater99> yeah
23:42:28 <cheater99> but i've seen many vids now
23:42:36 <elliott> % of people who haven't played minecraft and think it's probably lame: 99
23:42:44 <elliott> % of people who have played minecraft and think it's lame: much less
23:42:53 <elliott> nobody cares, honestly.
23:43:06 <cheater99> generally in the family of minecraft-likes you'd expect a scripted way of doing things in accelerated time, or at least without user interaction
23:43:14 <elliott> do you not think everyone has already heard "OMG IT SOUNDS BORING AND LAME" 100 times before
23:43:34 <cheater99> i'm not trying to change your mind or anything
23:43:35 <Gregor> DURP DURP MY INFORMED OPINION IS THAT IT'S LAME
23:43:42 <cheater99> or like "tell you it's lame"
23:43:44 <elliott> Gregor: OH MAN THAT'S NOVEL
23:43:52 <Gregor> I mean literally lame though.
23:43:56 <Gregor> It has a limp.
23:43:57 <elliott> cheater99: in response: no, automating such things would not make the game more fun.
23:44:04 <elliott> Gregor: So THAT'S what the view bobbing is.
23:44:04 <cheater99> i'm just expressing what my impression is and wondering why you guys think different
23:44:06 <cheater99> that's all
23:44:14 <elliott> cheater99: 'cuz it's fun
23:44:19 <cheater99> ya k
23:44:24 <cheater99> no reason to get upset there
23:44:28 <elliott> i'm not upset
23:44:41 <cheater99> <elliott> I'M NOT UPSET OK?????????
23:44:43 <cheater99> :p
23:44:52 <elliott> ah, right, everyone who disagrees with you is upset
23:45:00 <cheater99> no, i'm just joking around
23:45:28 <elliott> mining can be fun enough because you find caverns and dungeons, exploring caves is fun and often screenshot-worthy, exploring terrain is fun and often leads to good locations for build projects, building structures are fun, building houses is fun, building machines with redstone is fun, fighting mobs is... uh... terrifying
23:45:32 <elliott> so
23:45:33 <elliott> so terrifying
23:45:41 <cheater99> ya i can see exploring mines is fun
23:46:02 <cheater99> and so can exploring terrain be
23:46:06 <elliott> exploring mines? you build mines, you mean caverns :P
23:46:10 <cheater99> oh yes
23:46:14 <cheater99> or other people's mines
23:46:28 <j-invariant> also fun is building a forest-top village
23:46:31 <cheater99> but like.. i'm surprised there aren't scripts for say building houses or pools
23:46:31 <Gregor> Did I also mention that people who play Minecraft are torps and hurpadurp?
23:46:38 <cheater99> that just feels so droll tbh
23:47:18 <cheater99> what's a torp?
23:47:22 <cheater99> is that like a tarp?
23:48:28 <Gregor> Pfff
23:48:31 <Gregor> Such a torp question to ask.
23:48:36 <j-invariant> HORP TORP
23:49:14 -!- drakhan has quit (Remote host closed the connection).
23:49:28 <elliott> cheater99: man why aren't there machines that automate pushing pieces of lego together
23:49:38 <elliott> that just feels so droll tbh
23:50:26 <cheater99> there are
23:50:32 <elliott> cheater99: would you use them
23:50:42 <elliott> j-invariant: THAT SLEEP THING IS WORKING WELL FOR YOU HUH
23:50:46 <cheater99> no i would just use big pieces
23:50:54 <j-invariant> hehe
23:51:06 <elliott> cheater99: ahh, so you'd rather play MINECRAFT: FOR KIDS!
23:51:16 <Sgeo> Roblox?
23:51:19 <cheater99> i'd play minecraft duplo
23:51:22 <j-invariant> minecraft is for kids X)
23:51:28 <Sgeo> Oh, that reminds me, I want to try Roblox >.>
23:51:28 <cheater99> with BIG pieces
23:51:47 <cheater99> designed for 1-3 years of age.
23:52:08 <cheater99> since, like, i love to remit like that.
23:52:27 <elliott> you keep using that word etc.
23:53:55 <elliott> so my superdrive STILL isn't here, what is this INSOLENCE
23:54:23 -!- j-invariant has quit (Quit: leaving).
23:55:26 <cheater99> you have to make sure the infidels pay with their lives
23:55:50 <cheater99> elliott: what word?
23:56:39 <elliott> ?
23:56:44 <elliott> remit
23:57:21 <cheater99> i do?
23:57:35 <cheater99> anyways, some cool tricks here: http://blog.ksplice.com/2011/01/solving-problems-with-proc/
23:57:37 <elliott> no, but i do not think it means what you think it means.
23:58:25 <cheater99> a remission is when you go back
23:58:28 <elliott> "A UNIX process refers to its open files using integers called file descriptors. When we say "standard input", we really mean "file descriptor 0". So we can use /proc/self/fd/0 as an explicit name for standard input:"
23:58:29 <elliott> lolfail
23:58:30 -!- hiato has joined.
23:58:31 <elliott> /dev/fd/0
23:58:53 <elliott> cheater99: that's irrelevant, the fact is that afaik nobody uses "remit" like that
23:59:01 <elliott> unless you, like, got cancer at the age of 3 and still have it
23:59:05 <elliott> "I'm remitting back to BEFORE"
23:59:22 <elliott> "Good news! I'm in remission!" "That's great!" "Yes, I love being three years old!"
23:59:25 <elliott> nope, still not working
23:59:27 <cheater99> yeah but there's a technique in psychology called remission
23:59:29 <cheater99> isn't there?
23:59:44 <elliott> isn't it regression you are thinking of
←2011-01-10 2011-01-11 2011-01-12→ ↑2011 ↑all