←2013-02-19 2013-02-20 2013-02-21→ ↑2013 ↑all
00:00:11 <doesthiswork> reversible is just a side effect
00:00:14 <Bike> doesthiswork: the fredkin gate has three outputs.
00:00:56 <doesthiswork> yes it does, and if you use each output exactly once it conserves information
00:00:58 <ais523> doesthiswork: reversible languages emulating irreversible ones normally do so by having keeping a history of what happened
00:01:08 <ais523> to be able to reverse it
00:02:09 <doesthiswork> I am more interested in the conservation of information and 0-energy than reversing computation
00:02:23 <Phantom_Hoover> doesthiswork, you can't talk about 'conservation of information' without a rigorous quantification of information
00:02:32 <doesthiswork> shannon information
00:02:56 <doesthiswork> otherwise known as entropy
00:03:21 <Bike> so, the thing reversible computing won't increase
00:04:25 <doesthiswork> phantom_hoover: what is the definition of reversible that the rest of the world uses?
00:04:38 <Phantom_Hoover> bijective between its inputs and outputs?
00:05:07 <ais523> doesthiswork: basically that given any program, there's an inverse program that does the opposite
00:05:10 <ais523> that you can run to undo its effects
00:05:12 <ais523> and the same for subprograms
00:05:41 <doesthiswork> does sound like the definition of reversable
00:05:41 <Phantom_Hoover> man i can't believe i learnt about bijectivity in this channel
00:06:01 <elliott> thats when Phantom_Hoover was 3
00:06:06 <Phantom_Hoover> yes
00:06:15 <Phantom_Hoover> now i am 6 i am infinitely wiser
00:06:24 <shachaf> What does bijectivity mean between classes (rather than sets)?
00:06:25 <elliott> no your 4
00:06:29 <shachaf> Is it a thing you can talk about?
00:06:45 <elliott> shachaf: Set theory? Come on.
00:06:47 <Phantom_Hoover> probably...?
00:06:55 <shachaf> elliott: OK, how do you define adjunctions between categories that aren't locally small?
00:07:23 <shachaf> "putting it in terms elliott can understand"
00:07:26 <Phantom_Hoover> what do you need for bijectivity?
00:07:37 <Phantom_Hoover> equality, universal and existential quantification...?
00:07:48 <Phantom_Hoover> existence of functions or something similar, i guess
00:07:48 <Bike> you mean to define it?
00:08:05 <shachaf> I don't even know, man. How do classes even, like, work?
00:08:14 <Bike> don't they usually not
00:08:32 <shachaf> Bike: well you need them for categories like Set..................
00:08:36 <shachaf> Or something.
00:08:55 <Bike> i thought the general opinion of set theory of category theory is "fuck that"
00:09:01 <Bike> thus elliott
00:09:06 <Phantom_Hoover> also... do you need adjunctions to get bijections in category theory?
00:09:15 <Phantom_Hoover> i thought being monic and epic was enough or sth
00:10:25 <shachaf> ?
00:10:29 <shachaf> Which definition are you thinking of?
00:11:47 <Phantom_Hoover> i seem to be confused
00:12:39 <Phantom_Hoover> i'm thinking of a bimorphism, i think
00:13:22 <shachaf> I mean, you have the definition of adjunctions in terms of natural transformations, but I wonder how it all works when you have proper classes.
00:13:50 <Phantom_Hoover> why are we even talking about proper classes, was it just a curiosity
00:13:56 <nooodl> i'd play on a #esoteric minecraft server probably
00:14:08 <nooodl> it's actually been a while since i last played...
00:14:13 <shachaf> Phantom_Hoover: well you did bring up bijectivity.......
00:14:22 <Phantom_Hoover> not on proper classes!!
00:14:26 <shachaf> Maybe I should ask Bike.
00:14:39 <shachaf> I bet Bike knows?
00:15:08 <Bike> nope sorry i'm a fraud
00:15:11 <Bike> i know nothing
00:16:10 <elliott> Gregor: is your server still based on the map of the old server
00:16:57 <elliott> Bike: by the way I think http://en.wikipedia.org/wiki/Tropical_geometry was the thing I was thinking of
00:17:07 <shachaf> Bike: allow me to illustrate with a diagram: http://flockdraw.com/upload/8kr07f6lb00s44k80c4.png
00:17:15 <Bike> that thing you said was named after an island?
00:17:31 <nooodl> yikes that diagram
00:17:51 <Bike> it's pretty helpful
00:18:32 <Bike> but uh i'm pretty sure you can just quantify over members of classes same as you do sets
00:22:27 <Phantom_Hoover> i think it depends on what version of set theory you use
00:23:06 -!- nooga has quit (Ping timeout: 240 seconds).
00:23:11 <Bike> i'm guessing an obvious one like NBG since shachaf wasn't more specific
00:25:40 <Bike> http://math.stackexchange.com/questions/92257/in-nbg-set-theory-how-could-you-state-the-axiom-of-limitation-of-size-in-first-o looks pretty standard
00:26:29 -!- FireFly has quit (Excess Flood).
00:27:28 -!- FireFly has joined.
00:32:48 <zzo38> What is set theory with sets of any "rank" that can contain smaller rank sets?
00:33:29 <elliott> tell us another one, Bertrand
00:33:36 <Bike> zfc
00:34:05 <Bike> hm i bet russell could play piano
00:34:16 <Bike> wonder if he was actually any good or if it was just a forced in kidhood thing
00:34:17 <zzo38> I mean instead of only sets and proper classes to have however much you want as long as you know which one it is
00:35:37 <shachaf> Bike: i heard he was a natural
00:35:48 <Bike> that's how zfc works
00:36:34 <Bike> V_0 = empty, V_{n+1} = P(V_n) and then you get sick of this and throw in vector bundles
00:37:39 <shachaf> Bike: I think instead of this category nonsense I should learn a few real maths.
00:37:46 <Phantom_Hoover> Bike, er
00:37:53 <Phantom_Hoover> isn't P({}) {}
00:38:00 <Bike> it's {{}}
00:38:04 <Phantom_Hoover> ohhh
00:38:17 <Phantom_Hoover> yeah duh
00:38:34 <elliott> Bike: can he play the peano
00:38:38 <Bike> heh
00:38:38 <elliott> oh shachaf already made the joke
00:38:43 <Bike> i like yours better
00:39:03 <Bike> shachaf: i like that maths has moved far enough for Principia Mathematica to be considered concrete relative to something
00:39:46 <Bike> maybe after category theory mathematicians will just roll around on the floor laughing
00:40:13 <Phantom_Hoover> did you know some mathematicians think category theory is just a load of abstract nonsense
00:40:49 <Bike> i have heard that from somebody who works on infinitary logic.
00:41:04 <Gregor> <elliott> Gregor: is your server still based on the map of the old server // no
00:41:07 <Phantom_Hoover> yeah but nobody gives a shit what logicians say
00:41:18 <Gregor> elliott: There are so many changes, keeping the old one is almost silly.
00:41:20 <Bike> fair enough
00:41:56 <Bike> i think he mentioned having a friend who did category theory with games or something, kinda wish i'd asked more about it
00:42:29 <elliott> Phantom_Hoover: EXCUSE ME
00:43:17 <Bike> how does infinitary logic interact with curry-howard
00:49:37 -!- nooodl has quit (Ping timeout: 248 seconds).
00:51:46 -!- augur_ has joined.
01:00:40 -!- Phantom_Hoover has quit (Quit: Leaving).
01:21:34 -!- Nisstyre-laptop has joined.
01:25:29 -!- ais523 has quit.
01:31:06 <kmc> zzo38: New Foundations is like that
01:32:18 <kmc> the axioms are: extensionality of equality, and set comprehension where there must exist a way to assign levels to things such that if "a ∈ b" appears, a must be at a lower level than b
01:32:34 <kmc> that's all the axioms (on top of predicate logic i guess)
01:32:47 <kmc> it's super simple but people hate it because its consistency is independent of everything else, or something
01:33:32 <Bike> people hate NF?
01:35:39 <elliott> have I mentioned: set theory sucks. type theory 4 eva
01:46:40 -!- Regis_ has joined.
01:50:27 <kmc> you make a persuasive argument
01:52:00 <elliott> kmc: can you give me a good infix composition operator that isn't .
01:52:03 <elliott> and that I can type
01:53:03 <Bike> × for the irony.
01:54:23 -!- augur_ has quit (Remote host closed the connection).
01:54:51 -!- augur has joined.
01:55:21 <Sgeo> elliott, surely if the symbol represents a legal function in a statically typed language, it can be typed?
01:55:29 <kmc> it's easy to type ×
01:55:38 <kmc> or ∘
01:55:51 <elliott> Sgeo:
01:55:54 <doesthiswork> lol
01:55:59 <Bike> sgeo..........
01:56:03 <elliott> kmc: what compose key do you have for \circ
01:56:05 <elliott> because i don't have it
01:56:09 * Sgeo isn't allowed to make jokes?
01:56:50 <Bike> nope
01:56:51 <elliott> not bad jokes
01:57:05 <Bike> i snickered for what it's worth which is one gold piece
01:57:12 <elliott> how does sgeo redeem his gold piece
01:57:36 <Bike> Does he have a WoW account?
02:00:47 <Sgeo> I had an account on metaplace
02:00:51 <Sgeo> Back when it existed
02:01:10 <Bike> that doesn't sound like a thing that has gold pieces.
02:01:26 <Sgeo> I think it had... something. Some kind of currency
02:01:36 <Sgeo> I forget what though
02:01:52 <Bike> Guess you can't redeem your gp then.
02:01:58 <Bike> I'll mark it down in my notebook for you though.
02:02:13 <Sgeo> :D
02:05:21 <elliott> kmc: but seriously do you have a good compose binding for it
02:05:23 <elliott> and what is it
02:05:27 <kmc> i added it as o.
02:05:35 <elliott> hmmm
02:05:36 -!- Regis_ has quit (Ping timeout: 240 seconds).
02:05:38 <elliott> seems reasonable
02:05:41 <kmc> not to be confused with .o = ȯ
02:05:46 <shachaf> o. now I sew.
02:06:12 <kmc> oȯóöőꙮ
02:06:48 <Bike> what do you have ꙮ on?
02:07:22 <kmc> i enter that using urxvt's ISO 14755 mode
02:07:33 <kmc> which is to say, hold down Ctrl-Shift and type A66E
02:08:04 <kmc> i remember the codepoint value for CYRILLIC LETTER MULTIOCULAR O because it's p. much the best Unicode character
02:08:07 <Bike> maybe you could put it on [compose].ooooooo
02:08:10 <kmc> yes
02:08:43 <kmc> doesn't it bug you that the Unicode reference glyph has 7 eyes but the only source for the character (that i could find) has 10 eyes?
02:09:44 -!- epicmonkey has joined.
02:09:55 <Bike> does the consortium have a complaints box
02:10:23 <elliott> > (0$0.)
02:10:25 <lambdabot> The operator `L..' [infixr 9] of a section
02:10:25 <lambdabot> must have lower precedence ...
02:11:09 <kmc> the fuck, there are also combining character versions of cyrillic
02:11:25 <kmc> for old ass manuscripts where they wrote some letters above others for no apparent reason
02:11:27 <Bike> well yeah, isn't that where we got combining cyrillic millions?
02:11:28 <Bike> oh.
02:14:43 <kmc> isn't that where umlauts come from too
02:15:17 <Bike> diareses are used in a lot of non-slavic languages though...
02:16:07 <kmc> (mommy where do umlauts come from?)
02:16:10 <kmc> yeah i meant in general
02:16:15 <kmc> ä used to be an e over an a
02:16:25 <kmc> but the scribes got lazy until eventually it's just two fuckin dots
02:16:34 <kmc> it's neat how the sands of time wear smooth the edges of language
02:21:14 <Sgeo> When will they wear smooth the annoyances of English?
02:21:34 <Sgeo> English the borg language, assimilating words from other languages without at least making them consistent.
02:24:55 -!- FreeFull has quit (Ping timeout: 244 seconds).
02:26:26 -!- FreeFull has joined.
02:26:43 <Bike> they have worn smooth the annoyances of english dude
02:26:52 <Bike> have you ever thought about why we have "'s" for possession?
02:27:03 <Bike> it's because old english had a big complicated system of declension
02:27:14 <Bike> but that all got lost and 's and a few other things are the only remnant
02:27:22 <doesthiswork> the suffix -ed is a reduced form of "did"
02:27:46 <doesthiswork> the suffix -ly used to be like
02:28:22 <Bike> the thing is that language sort of requires a certain level of expressibility, so you gain things too
02:28:37 -!- monqy has joined.
02:28:39 <Bike> like i dunno, "cyber-" meaning internet and tech things despite that having little or nothing to do with cybernetics
02:30:25 <kmc> yeah i never thought about the possessive as a noun case until recently
02:30:48 -!- epicmonkey has quit (Ping timeout: 276 seconds).
02:31:06 <Bike> the "nice" thing about being a monoglot is never having to think about your language at all
02:32:16 <Bike> in spanish class once a classmate complained about how unintuitive "va" being a conjugation of "ir" was, and the teacher pointed out it made about as much sense as "went" from "go"
02:33:34 <Sgeo> In Spanish class once, a girl asked if people switch the location of adjective and noun in their head
02:34:21 <Bike> ha, you mean, to match english ordering?
02:34:28 <Sgeo> yes
02:34:46 <Bike> there was an anecdote about that in hofstadter i liked
02:35:03 <coppro> Sgeo: even better,
02:35:04 <coppro> "be"
02:35:09 <Bike> "[referring to Russian] The text appears to be ciphered. I will now precede to decode [into English]"
02:35:20 <coppro> "be" has seven forms, which is three more than any other verb
02:35:28 <coppro> and the past tenses are from a different root
02:35:52 <Bike> "are" and "is" have the same root?
02:35:57 <coppro> yes, actually
02:36:07 <Bike> whoa.
02:36:21 <coppro> hmm... I /could/ be wrong
02:36:33 <coppro> but I'm pretty sure it's just was/were that have a different root
02:36:56 <Bike> maybe was+is/were+are are splits off an earlier split :P
02:37:46 <Bike> «From Middle English, from Old English is, from Proto-Germanic *isti, a form of Proto-Germanic *wesanan (“to be”), from Proto-Indo-European *h₁ésti (“is”)»
02:38:13 <Bike> versus are, «[...]from Proto-Germanic *arun (“(they) are", originally, "(they) became”)»
02:38:21 <Bike> that's cool
02:38:35 <coppro> hmm, ok
02:39:06 <Bike> "were" seems to be from the first actually
02:39:24 <Bike> anyway if anything this just makes your point that "be" is fucking weird stronger
02:39:38 <Bike> «The paradigm of "to be" has been since the time of Proto-Germanic a synthesis of three originally distinct verb stems. The infinitive form be is from Proto-Indo-European *bʰew- (“to become”). The words is and are are both derived from Proto-Indo-European *h₁es- (“to be”). Lastly, the past forms starting with w- such as was and were are from Proto-Indo-European *h₂wes- (“to reside”).»
02:39:55 <Bike> So ok, you're right.
02:41:36 <shachaf> kmc: What do you think about the fact that an existential type can be much more memory-efficient than a record?
02:42:34 <shachaf> E.g. if you have class Blah a where length, width, height, volume, area, ... :: a -> Double
02:42:47 <shachaf> And then you have data Shape = forall a. Blah a => Shape a
02:42:57 <shachaf> And you have data Circle = Circle Double Double
02:43:35 <shachaf> Then a [Shape] will only take up as much memory as the circles, no matter how many methods you add.
02:44:24 <shachaf> Whereas with a (Double,Double,Double,...) record you use more memory for every value.
02:49:58 <kmc> that's basically the optimization behind vtables right?
02:50:05 <shachaf> Yes.
02:50:11 <shachaf> It's pretty much a vtable.
02:50:14 <kmc> it's a good one
02:50:29 -!- TeruFSX has joined.
02:50:30 <shachaf> This isn't strictly about type classes.
02:50:47 <shachaf> You can represent it as exists a. (a, (a -> Double, a -> Double, ...))
02:51:03 <shachaf> That way you can share the dictionaries even when they're constructed at runtime.
02:51:28 <zzo38> I have done something similar like that too
02:51:36 <shachaf> Anyway, it's an annoying aspect of the "record of methods" approach.
02:51:52 <zzo38> Although in my case I had Typeable as a superclass
02:52:41 <zzo38> I didn't know it is called a vtable.
02:52:52 <doesthiswork> you know how physicists like trying to solve the problems of other fields because they figure they can probably do it better than the professionals?
02:53:05 <Bike> stereotypically, sure
02:53:19 <shachaf> I thought that was a stereotype about programmers.
02:53:22 <kmc> programmers too
02:53:30 <doesthiswork> I've noticed several programers that have the habit of trying to do the same to physics
02:53:38 <kmc> dude programmers do it with everything
02:53:38 <doesthiswork> it is pretty funny
02:53:41 <kmc> and yes
02:53:43 <zzo38> doesthiswork: Maybe in some cases it is possible? Not in all cases!
02:53:46 <zzo38> (Same with programmers)
02:53:54 <kmc> my favorite recent example is http://dotsies.org/
02:54:01 <kmc> cause vision is just, like, a grid of pixels, right?
02:54:12 <Bike> lol for real
02:54:28 <doesthiswork> lol
02:54:29 <Bike> ahahaha.
02:54:54 <doesthiswork> my hobby is redesigning alphabets so i feel free to say that this one is a bad idea
02:55:04 <Bike> it's like universal language crap but with scripts, i'll give them half a point for some originality
02:56:52 <zzo38> If you just want five dots each, you can even use different encodings, such as Baudot
02:56:56 <doesthiswork> fər sɛvrl mʌnθs æi roʊt onli ɪn IPA
02:57:47 <kmc> i think these people legitimately recognize that applying computational techniques to this or that old field can be really powerful
02:57:53 <kmc> but they don't realize that you need to work with domain experts
02:57:54 <kmc> and like
02:57:56 <kmc> collect data
02:57:58 <kmc> and analyze it
02:57:59 <Bike> well yeah, they just do it naïvely
02:58:00 <doesthiswork> exactly!
02:58:08 <Bike> computational physics and visions are huge and amazing fields, of course
02:58:10 <kmc> they just assume that if a programmer thinks about something really hard, he/she will come up with the perfect answer
02:58:11 <doesthiswork> and the domane experts love new ideas
02:58:24 <doesthiswork> because they love the domain
02:58:30 <Bike> doesthiswork: btw you should write in IPA in a non-rhotic accent
02:58:37 <kmc> it really gets me how bad many programmers are at empiricism
02:58:51 <doesthiswork> no thanks I don't like those little floaty rs
02:58:52 <kmc> argue forever about which way will be faster without actually running the fucking thing
02:59:07 <shachaf> Just argue about which way is better instead.
02:59:10 <Bike> the first CS paper I ever read had tables of times <3
02:59:10 <shachaf> Untestable!
02:59:29 <shachaf> Bike: ummm that doesn't sound like real cs.....
02:59:30 <Sgeo> Is it possible to be a college professor without being a PhD?
02:59:32 <doesthiswork> kmc : http://www.neverworkintheory.org/
02:59:34 <Sgeo> I think I would like that
02:59:44 <Bike> Sgeo: you could have a master's and teach at a community college
02:59:57 <Bike> alt. be a misunderstood genius and get an honorary degree
03:00:11 <shachaf> Bike: Don't you have to be understood for that?
03:00:12 <Bike> shachaf: It was the 80s. A strange time for all of us.
03:00:28 <shachaf> Bike: I have it on good authority the 80s didn't exist.
03:00:30 <Bike> shachaf: I don't mean a misunderstood genius. Just misunderstood.
03:00:37 <kmc> shachaf: argue about which way is more elegant and awesome
03:00:49 -!- DH____ has quit (Read error: Connection reset by peer).
03:00:52 <shachaf> kmc: That works too.
03:01:07 <shachaf> Well, everyone knows that length in bytes in the true measure of code elegance.
03:01:22 <doesthiswork> I have found that by the time I've heard 5 ways of doing something I have developed strong opinions about which way is best, all with out ever doing the thing
03:01:23 <kmc> "Cool, lots of people on twitter can't distinguish between aesthetics and engineering. That's encouraging."
03:01:59 <Bike> doesthiswork: i think people are pretty good at having strong opinions regardless of what they know, generally speaking.
03:02:10 <kmc> inversely proportional in fact
03:03:08 <doesthiswork> kmc: I've seen a graph of how well people thought they did compated to how wel they did do
03:03:20 <doesthiswork> there was no inverse nor inflection point
03:03:57 <doesthiswork> their estimates just had a much lower variance and a mean of 60th percentile
03:04:03 -!- TeruFSX2 has joined.
03:04:10 -!- TeruFSX2 has quit (Read error: Connection reset by peer).
03:04:18 -!- TeruFSX2 has joined.
03:04:33 <kmc> heh
03:05:12 <kmc> well dunning and kruger demonstrated an inverse correlation
03:05:14 <doesthiswork> although my anecdotal evidence matches up with your statement
03:05:17 <kmc> don't know how it generalizes
03:05:27 <kmc> parkinson's law of triviality is also relevant here
03:05:41 <kmc> people have opinions on simple and unimportant things, cause everyone can understand them
03:05:58 <doesthiswork> that actually seems counter
03:06:17 <shachaf> kmc: You're spreading rumours about CUPS now?
03:06:18 <shachaf> Ugh.
03:06:22 <shachaf> I should track down this last bug.
03:06:25 <doesthiswork> what it said is that people failed to express opinions about things they didn't know
03:06:28 <shachaf> "last"
03:06:35 <doesthiswork> but made up for it on the trivial things
03:07:09 <kmc> shachaf: yes
03:07:14 -!- azaq23 has quit (Quit: Leaving.).
03:07:39 <kmc> yeah they are kind of counter
03:07:49 <kmc> but both relate to silly opinions ;)
03:08:01 -!- dessos_ has changed nick to dessos.
03:08:24 <doesthiswork> have a look at the dunning kruger graph http://www.talyarkoni.org/blog/2010/07/07/what-the-dunning-kruger-effect-is-and-isnt/
03:08:37 <shachaf> Why are there two good laws named "Parkinson's Law"?
03:08:52 <shachaf> Named after the same person, too.
03:08:59 <doesthiswork> it shows that the ranking of abiliy is stable no matter your knowledge level
03:09:09 <Bike> Because Parkinson was a cool person, obviously.
03:09:19 <doesthiswork> it is just the absolute vales that change
03:09:47 <Bike> I keep seeing "Kruger" and reading "Krugman".
03:10:45 <Bike> I like how the crossing point is way higher than mediocrity.
03:12:08 <doesthiswork> the crossing point depends on the difficulty of the tast
03:12:15 <Bike> Makes sense.
03:12:22 <doesthiswork> with harder tasks the crossing point is lower
03:12:56 <Bike> the SSRI thing reminds me of the various controversies in medicine... statistics is hard to do right.
03:13:07 <doesthiswork> (sorry about bringing in the data, but I really like graphs)
03:13:31 <Bike> Don't apologize, this article is cool.
03:15:18 <kmc> doshm
03:15:27 <kmc> thanks for the link doesthiswork
03:15:43 -!- TodPunk has quit (Quit: This is me, signing off. Probably rebooting or something.).
03:16:14 <kmc> huh ok
03:16:22 <kmc> i should pay better attention to science :)
03:16:32 <doesthiswork> it pisses off some of my facebook acquaintances, when I spoil a good story with nitpicking data
03:16:35 <Bike> it's particularly hard to keep up with psychology, i think...
03:16:51 <Bike> apparently people are pretty complicated?
03:16:54 <kmc> it would be the height of hypocrisy if i were upset about you bringing data into /this/ discussion
03:17:17 <kmc> i don't know why i typed "doshm" up there or what it means
03:17:20 <kmc> more mysteries of human psychology
03:17:27 <kmc> it was probably an attempt to tab complete your name doesthiswork
03:18:46 <Bike> gimme the dosh
03:25:47 <doesthiswork> here is an argument for why R is a good esoteric language http://www.talyarkoni.org/blog/2012/06/08/r-the-master-troll-of-statistical-languages/
03:29:02 -!- elliott has set topic: doshm | http://codu.org/logs/_esoteric/.
03:29:11 <elliott> all hail dosm
03:29:13 <elliott> i mean doshm
03:29:18 <elliott> the sects have started already
03:29:47 <kmc> oh no
03:29:51 <kmc> what have i done
03:29:56 <kmc> what have i dunning
03:30:00 <shachaf> imo grhgh
03:30:39 <Bike> that's quite an apply
03:31:16 <Bike> "string (or, in R’s nomenclature, character)"
03:31:36 <shachaf> @arrrr
03:31:36 <lambdabot> Drink up, me 'earties
03:32:42 <kmc> of all the dated lines in _Hackers_, I think "RISC architecture is going to change everything" might be the best
03:33:03 <Bike> what's the context
03:33:28 <monqy> r is weird
03:33:28 <lambdabot> monqy: You have 1 new message. '/msg lambdabot @messages' to read it.
03:33:36 <monqy> another??? i just checked my messages
03:33:55 <monqy> an hour ago i guess
03:33:58 <shachaf> monqy: do you check your messages in /msg every day before talking in the channel
03:34:14 <shachaf> i've sent you several messages and never saw the monqy: You have notification before??
03:34:48 <monqy> mhm
03:36:35 <kmc> Bike: two nerds nerding out as a mating ritual
03:36:39 <doesthiswork> shachaf: i think monqy doesn't want to respond to your messages
03:36:50 <shachaf> doesthiswork: It's possible.
03:37:08 <shachaf> I think it's been suggested that I bug monqy too much.
03:37:16 <shachaf> Perhaps I should cut down.
03:37:17 <doesthiswork> that can't be right
03:37:19 <Bike> kmc: i can imagine that line coming up in such a context in life
03:37:26 <doesthiswork> if anything you aren't monqying enough
03:37:46 <zzo38> Even though it is called RISC, modern ARM are really complicatd though.
03:37:54 <elliott> doesthiswork: ok who are you
03:37:58 <elliott> you have clearly been in this channel before
03:38:04 <elliott> is it you chris????
03:38:30 <shachaf> `pastelogs 75.87.251.5
03:38:31 <Bike> zzo38: so, what, you think Hackers is inaccurate?
03:38:49 <zzo38> Bike: That is not what I said.
03:38:52 <kmc> zzo38 yeah
03:39:06 <HackEgo> No output.
03:39:25 <Bike> it isn't, but "ARM isn't really reduced in a meaningful sense" isn't all that interesting to talk about
03:39:34 <elliott> well I guess doesthiswork has to be the kind of person who would use adium to connect to an IRC channel
03:39:39 <elliott> not sure how this helps me narrow things down
03:39:49 <Bike> though i was just reading something about proposed x86 extensions and they're pretty wacky
03:40:05 <Bike> arbitrary bit perms in constant cycles, hooray
03:40:15 <doesthiswork> elliott: what kind of person would that be?
03:40:20 <shachaf> Bike: Unlike the accepted x86 extensions, eh?
03:40:42 <Bike> quite
03:41:10 <Bike> some of them must be at least as complicated as POLY by now
03:41:20 <elliott> doesthiswork: aaaaaaaargh
03:41:24 <elliott> `pastelogs doesthiswork
03:41:39 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3003
03:41:46 <zzo38> x86 have removed instructions too
03:41:53 <Bike> doesthiswork: are you a person from elliott's past that wants to annoy him into madness, because i could get behind that
03:42:17 <elliott> Bike: I think you will find that literally everyone on the planet wnats to annoy me
03:42:31 <Bike> well yes, exactly
03:42:34 <Bike> we need to organize
03:42:41 <elliott> okay I believe I have sufficient information to discount the hypothesis that doesthiswork is cpressey
03:42:57 <elliott> for instance you asked about a cpressey language
03:43:05 <elliott> the only cpressey language cpressey would ask about is turkey bomb
03:43:21 <shachaf> who is cpressey
03:43:23 -!- TodPunk has joined.
03:43:28 <doesthiswork> is being cpressy a bad thing?
03:43:36 <Bike> no, elliott loves cpressey.
03:43:37 <shachaf> doesthiswork: not at all
03:43:42 <monqy> maybe doesthiswork is the mirror world version of someone you know
03:43:42 <kmc> RISC isn't just about having fewer instructions
03:43:44 <elliott> doesthiswork: no, it's roughly the best thing
03:43:47 <kmc> ARM has interesting RISCy properties
03:43:51 <kmc> even if it has lots of instructions
03:44:06 <zzo38> ARM has several instruction sets
03:44:06 <Bike> the initialism does stand for "reduced instruction set computer"...
03:44:15 <kmc> it's kind of a second generation RISC in that it has features specifically to deal with weakness of basic RISC
03:44:30 <kmc> but also yeah, it has multiple instruction sets and other such stuff which makes it less RISCy
03:45:07 <Bike> instruction set by itself doesn't seem like the greatest criterion, anyway, you can implement instructions in lots of ways
03:45:25 <kmc> Bike: there's some instruction that shachaf and Donald Knuth like, which is multiplication of two 8×8 binary matrices (as 64-bit numbers)
03:45:32 <kmc> apparently many useful things can be expressed this way
03:45:52 <Bike> a fuckton of linear operators for one
03:46:06 <Bike> i wouldn't be surprised if SIMD has that soon really
03:46:50 <kmc> or maybe it's matrix * 8-bit vector, applied to each byte of the other operand
03:46:54 <kmc> shachaf: ^?
03:47:01 <kmc> think both would be useful
03:47:14 <shachaf> It's multiplication of two matrices.
03:47:19 <shachaf> Using AND and either OR or XOR.
03:48:04 <kmc> is (or, and) a field?
03:49:17 <Bike> pretty sure it is
03:49:30 <shachaf> What it does is let you express each byte of the resulting matrix as OR/XOR of any selection of bytes of the source matrix, as specified by the intermediate matrix.
03:50:58 <Bike> Hey, anybody here know any German perchance?
03:51:06 <kmc> i know how to say "segmentation fault"
03:51:16 <zzo38> What I would like is a mux instruction, like described in esolang wiki under "Muxcomp".
03:51:25 <Bike> I want to know what the hell is going on with the name "Uexküll".
03:51:32 <Bike> Does German even use "x"?
03:52:08 <shachaf> Uexküll (also Üxküll or Yxkull) is a Baltic-German noble family.
03:52:11 <Bike> zzo38: http://palms.princeton.edu/system/files/IEEE_TC09_NewBasisForShifters.pdf You might find this interesting.
03:52:16 <Bike> Yxkull. No way.
03:52:17 <shachaf> Looks like there are lots of ways to spell it, but all of them use x.
03:52:37 <Bike> Googling gives me... Swedish wikipedia
03:52:51 <shachaf> Swekipedia
03:54:26 <shachaf> Bike: have you accepted de Bruijn into your heart yet
03:54:47 <Bike> I'm used to weird-ass Dutch names by now.
03:54:56 <shachaf> Not the name.
03:55:27 <Bike> The person being cool is obvious.
03:55:41 <kmc> ü_ü
03:56:05 <Bike> "Gemeenschappelijke representantensystemen van twee klassen-indelingen van een verzameling.
03:56:53 -!- hogeyui has quit (Ping timeout: 244 seconds).
03:57:03 <Bike> kmc: What's "segmentation fault" in Dutch?
03:57:46 <kmc> please hold
03:58:32 <shachaf> kmc: What, running CUPS with nl_NL.UTF-8?
03:58:47 <kmc> something like that
03:59:18 <kmc> why does Debian need to regenerate *every* locale
03:59:59 <shachaf> Because it's more trouble to do it another way, presumably.
04:00:30 <kmc> the answer is "Segmentatiefout"
04:00:35 <Bike> fout.
04:00:51 <Bike> Maybe it would have been faster to install Dutch Debian on a fresh VM.
04:14:05 <kmc> double dutch debian
04:18:58 -!- hogeyui has joined.
04:21:39 <kmc> zzo38: yeah they removed a bunch of single-byte increment instructions :(
04:21:43 <kmc> from x86 i mean
04:22:24 <kmc> also AAA and DAA and such
04:32:16 <kmc> i forget what AAA is in amd64, it might just be reserved
04:32:29 -!- aloril has quit (Ping timeout: 276 seconds).
04:33:14 <Bike> What did it do?
04:33:40 <kmc> calls AAA to come change the tires on your computer
04:34:25 <kmc> actually ASCII Adjust for Addition
04:34:31 <kmc> used in BCD arithmetic
04:34:35 <Bike> oh, is that the bcd- yeah.
04:37:23 <kmc> remember that x86 traces its lineage back to a calculator processor
04:43:27 <zzo38> Yes I also don't like that they removed single-byte increment and BCD arithmetic, or all the extremely complicated stuff they added, but I think it might still works outside of 64-bit mode?
04:43:34 <kmc> yeah
04:43:51 <kmc> x86 is very particular about backwards compatibility
04:44:25 <kmc> i think even 16-bit protected mode is still supported
04:44:32 -!- aloril has joined.
04:44:56 <pikhq> kmc: ... in long mode
04:45:12 <kmc> yes i was talking about long mode before
04:45:32 <pikhq> WINE on x86_64 uses 16-bit protected mode to run Win16 stuff.
04:45:33 <pikhq> :)
04:45:57 <kmc> inside a compat mode 32-bit process?
04:45:59 <kmc> or what
04:46:07 <kmc> i don't know how these layers of compatibilitiy cruft stack ;_;
04:46:14 <pikhq> Pretty sure that's how it goes, yeah.
04:46:21 <shachaf> Windows 64-bit doesn't run Windows 16-bit programs. :-(
04:46:44 <pikhq> shachaf: Yeah, Microsoft decided it wasn't worthwhile to update NTVDM to actually work on x86_64.
04:46:56 <pikhq> There's no *technical* reason they couldn't, they just didn't feel like it.
04:47:05 <kmc> good for them
04:47:27 <pikhq> (admittedly, writing an 8086 emulator for the 0.001% of the population that really cares is a bit of a silly proposition)
04:48:04 <shachaf> Well, I know someone it affected.
04:48:20 -!- WeThePeople has joined.
04:48:30 <pikhq> IIRC they *did* do some hacks for old installers.
04:48:44 <pikhq> (because some Win32 stuff has 16-bit installers.)
04:50:18 <kmc> heh
04:50:28 <kmc> i guess it makes sense, if your app has a 16- and a 32-bit exe in the same install
04:50:35 <kmc> you don't want to have to write two installers
04:51:16 <pikhq> And if your company already has in-house installer programs, you're likely to just not care that the installer's not using Win32.
04:56:20 -!- TeruFSX2 has quit (Ping timeout: 252 seconds).
04:56:45 -!- TeruFSX has quit (Ping timeout: 260 seconds).
04:59:13 <Sgeo> There is a pro-peny lobbying group
04:59:19 <Sgeo> penny
04:59:30 <Sgeo> http://www.pennies.org/
05:00:01 <zzo38> I think should not get rid of pennies. Canadian government has stopped making them but they should continue to use it
05:03:06 <doesthiswork> 63 people liked that page
05:03:13 <doesthiswork> that means that no one cares
05:04:03 <zzo38> No it doesn't
05:04:48 <zzo38> The only thing it means is that 63 people put "Like" in it.
05:05:16 <zzo38> It doesn't tell you how many people care, how many people dislike, or anything else.
05:05:20 <kmc> https://medium.com/queer-life/f62d82e13c2d trolling recruiters for social good, i like it
05:05:47 <zzo38> The polls show something a bit more; the "Like" shows nothing regardless how high or low it is.
05:06:13 <zzo38> Since even people who have read it, but don't have Facebook, also isn't being counted.
05:07:17 <doesthiswork> kmc: that is community service
05:07:23 <Bike> kmc: i like it.
05:07:43 <Bike> THere's also the employment discrimination thing on top of that...
05:10:31 <Bike> This reminds me that I'm not really sure how I should refer to reassignment surgery. I used "cosmetic" once on the basis that it's not directly connected to physical failure of anything, but I pretty well immediately was told how shitty I sounded and now that I think about it I'm not sure I could explain what I was thinking.
05:11:48 -!- Frooxius has quit (Ping timeout: 244 seconds).
05:12:20 <kmc> just call it reassignment surgery i guess
05:14:33 <kmc> it may be too special case to fit in another category
05:15:03 <Bike> hm, maybe.
05:15:06 <kmc> in a sense it's surgery to fix a psychological problem rather than a physical one
05:15:12 <kmc> but 'psychological problem' has all kinds of stigma
05:15:15 <Bike> yeah
05:15:19 <kmc> like it's "not real" or you should just stop being crazy or whatever
05:16:00 <kmc> a lot of the way we talk about LGBT issues is kind of awkwardly dodging around even more fundamental biases that people have
05:16:24 <Bike> which is part of why i'd like to avoid anything even close to "cosmetic", yeah
05:16:43 <Bike> (especially after actually seeing it, for another connotation. that is not a simple operation)
05:19:53 <pikhq> Bike: "Sex reassignment surgery" is one of the more common ways of referring to it.
05:20:06 <pikhq> Not sure that's the best, but it's the one I default to when it comes up.
05:20:22 <Bike> i was trying to put it in a general category, for... some reason
05:21:56 <pikhq> It's tricky to categorize.
05:24:52 <pikhq> Somehow trans-related stuff has a way of bringing up edge cases.
05:25:11 <Bike> Haha, true enough.
05:25:28 <Sgeo> Maybe I should try to wrap my mind around Idris
05:25:47 <Bike> The prophet?
05:26:42 <Sgeo> http://idris-lang.org/
05:27:03 <Bike> Maybe you should try gardening.
05:28:46 <Sgeo> ?
05:29:08 <Bike> Instead of language after language, I mean.
05:29:12 <Bike> Get your mind off things.
05:29:56 <Sgeo> Funny, right now I'm looking at Idris to get my mind off things
05:32:24 <kmc> like people making a big deal about whether being gay is a choice
05:32:32 <kmc> it shouldn't matter whether it's a choice
05:32:47 <kmc> if somebody chooses to do something that doesn't affect you at all, that is still no excuse to take away their civil rights
05:32:48 <pikhq> Yeah, but assholes think "choice" -> "we can and should fix you".
05:33:09 <kmc> but the way we think about these things is generally fucked up
05:33:30 <kmc> not that i'm arguing it is a choice
05:33:33 <pikhq> I don't think it's a choice, but then it doesn't freaking matter.
05:33:35 <Bike> mm, i kind of had "if transsexuals want to present as another sex and alter their bodies accordingly I have no reason to object" as my mental model for a while, but it gets stale
05:33:35 <kmc> just, the fact that it even matters is messed up
05:33:44 * Sgeo agrees with kmc
05:34:07 <pikhq> Bike: Hey, that's starting off as a not-assholish position, so.
05:34:38 <kmc> i don't see why i should care about someone else modifing their body or worry about whether their reason is good enough
05:34:52 <kmc> a more interesting question is, in a civilized society with socialized healthcare, should i be obliged to pay for it
05:35:04 <kmc> but "fortunately" in america we don't need to think about this question so much
05:35:08 <Bike> pikhq: so i hope, but it oversimplifies transpeople's experiences enough that i'd like to move from it more
05:35:53 <Bike> the first i heard of transgenderism was a webcomic by a transgender person about the problems she had to deal with, so i started out reasonably sympathetic
05:36:29 <Bike> but now that i actually know transgender people i know that framing it in such a fashion isn't that great, i guess
05:38:44 <pikhq> Yeah, it is a bit more than just "yeah, they want to present as another sex", so.
05:39:25 <Bike> Unfortunately for me it turns out that well gosh, there's not a clear-cut and obvious line of thought to look at! who woulda thought, eh
05:39:38 -!- WeThePeople has quit (Remote host closed the connection).
05:39:46 <Bike> the SEP entries on the subject are crazy
05:40:19 <pikhq> SEP?
05:40:27 <Bike> stanford encyc. of philosophy
05:40:30 <pikhq> Ah.
05:40:42 <Bike> e.g. "Feminist Perspectives on Trans Issues"
05:40:58 <pikhq> With things around sex and gender, you can't go wrong assuming it's complicated.
05:41:12 <Bike> That's pretty much where I'm at now, yeah.
05:45:41 <kmc> s/sex and gender/humans/
05:45:52 <pikhq> Thanks for the generalization.
05:45:57 <kmc> theneralization
05:47:43 <kmc> labels make me sad because they obscure the uniqueness of each person's life story; on the other hand, they are useful esp. when fighting oppression
05:49:35 <Bike> yeah i used to do the "abandon labels" thing a lot
05:49:44 <kmc> life stories are also long and don't always make sense
05:49:45 <kmc> so there's that
05:49:48 <Bike> apparently this and other ideas i had corresponds to a popular feminist position, actually!
05:50:07 <kmc> does that position have... a label
05:50:32 <kmc> "the great thing about different types of feminism is that there are so many to choose from"
05:51:04 <Bike> i have no hope of understanding different waves or anything :(
05:51:05 <doesthiswork> if you don't use labels to record things it doesn't make problems go away it just means you no longer record what's happening
05:51:06 <pikhq> And human cognition seems to be based in labelling and categorizing things...
05:51:21 <Bike> doesthiswork: nice way to put it.
05:51:53 <elliott> doesthiswork: thats a strong argument for always naming function arguments
05:51:56 <elliott> oh man strong argument
05:51:58 <elliott> i am literally hilarious
05:52:04 <kmc> ellarious
05:52:05 <Bike> keep your day job
05:52:13 <doesthiswork> I prefer point free style
05:52:14 <elliott> Bike
05:52:18 <kmc> quit your day job and do an agile comedy startup
05:52:18 <elliott> i dont even have a day job
05:52:21 <kmc> iterate the shit out of that joke
05:52:26 <Bike> wait is your day job making bad jokes on irc
05:52:28 <elliott> can i pivot the joke by changing the punchline
05:52:30 <elliott> Bike: yes
05:52:34 <kmc> yes
05:52:34 <Bike> shit
05:53:09 <Bike> hm i guess it's called "performativity" or so
06:00:03 * pikhq wonders how LGBT issues came up here.
06:00:05 <pikhq> *shrug*
06:00:37 <Bike> Because kmc linked a page about asking tech recruiters whether they medically support trans employees.
06:00:43 <pikhq> Ah, right.
06:01:09 <Bike> then i went off on it because i am confused and ignorant.
06:02:47 <kmc> you don't sound confused and ignorant
06:02:58 <pikhq> I've seen confused and ignorant.
06:04:02 <pikhq> Bit worried for the day it actually starts effecting me, really.
06:04:09 <pikhq> Affecting, even.
06:04:19 <oklopol> äffecting
06:05:54 <zzo38> I have a book titled "There Are Two Errors In The The Title Of This Book"
06:06:04 <Bike> Is it good?
06:06:17 <zzo38> I have had it for a while already and wrote things in it
06:07:22 <zzo38> Suppose someone held a gun at your head, and said, "Believe that the Dodgers will win next year's World Series, or I'll shoot!"
06:07:40 <elliott> i'm supposing
06:08:10 <zzo38> Do you believe that God believes that you do not believe God believes that you do not believe God exists?
06:09:06 <pikhq>
06:09:07 <Bike> BG¬BG¬BE
06:09:25 <kmc> your dodgers scenario reminds me a bit of parfit's hitchhiker
06:09:39 <Bike> I can conveniently say "no" because I am an atheist. Checkmate, Christians.
06:09:40 <zzo38> kmc: It is from the book.
06:09:57 <zzo38> The second one is something I have written in the book myself.
06:10:37 <Bike> It's like the modal question from hell. I'm so bad at recursion.
06:11:08 <kmc> what's a modal question
06:11:11 <kmc> something about modal logic?
06:11:16 <Bike> @google doxastic logic
06:11:18 <lambdabot> http://en.wikipedia.org/wiki/Doxastic_logic
06:11:18 <lambdabot> Title: Doxastic logic - Wikipedia, the free encyclopedia
06:11:26 <zzo38> In this book, they say "All universal claims are false" is a false statement, but if you believe that, you have to tell me which universal claim is not false (it shouldn't be difficult); but they did not consider that in their logic!
06:11:43 <Bike> That's a very constructivist thing to say, zzo38.
06:12:04 <zzo38> Bike: What kind of logic is applicable depends on the circumstances, I think.
06:12:19 <zzo38> So many of the logical paradoxes they have may also be due to using the wrong kind of logic.
06:12:31 <Bike> I just meant that your God question is pretty doxastic.
06:12:43 <oklopol> i'm so strongly against labels that when someone tries to talk about functions or groups to me, i correct them
06:12:53 <zzo38> Bike: I don't even know what "doxastic" means but I can look it up.
06:12:56 <oklopol> by saying it's all sets
06:13:01 <oklopol> and they are being ignorant
06:14:03 <Bike> zzo38: It's a kind of modal logic where the modal... functions... i forget what they're called, are like "believes". Like BG¬BG¬BE is short for your question, where E = "God exists", Bx = I believe x, and Gx = God believes x.
06:14:04 <zzo38> Yes I can see how doxastic logic is about believing, but still, if you say "do you believe..." it has to do with *you*, not with logic.
06:14:40 <Bike> That's why it's modal.
06:14:49 <Bike> I mean, you can have Bx and ¬x.
06:16:29 <zzo38> That is for "inaccurate reasoner"
06:16:31 <elliott> 06:11:26 <zzo38> In this book, they say "All universal claims are false" is a false statement, but if you believe that, you have to tell me which universal claim is not false (it shouldn't be difficult); but they did not consider that in their logic!
06:16:57 <elliott> zzo38: ~(forall a, ~p(a)) doesn't necessarily give you a concrete a s.t. p(a)
06:17:01 <shachaf> Can you have Bx and B¬(Bx)?
06:17:16 <pikhq> I've observed it.
06:17:26 <Bike> shachaf: that's called a peculiar reasoner.
06:17:59 <Bike> Psychologically I don't really think doxastic logic is very accurate, though...
06:18:33 <shachaf> Bike: http://www.mit.edu/people/dpolicar/writing/prose/text/epistemologicalNightmare.html
06:18:48 <zzo38> Bike: You may be correct, I also don't really think doxastic logic really describe beliefs. It is still a kind of logic though.
06:18:49 <Bike> Haha, I love that story
06:19:05 <Bike> that whole book was crazy in the best way
06:19:07 <shachaf> raymond.smullyan++
06:19:14 <shachaf> Which book was that? 5000 B.C.?
06:19:30 <shachaf> I think it was in _The Mind's I_ also.
06:19:32 <Bike> The Mind's Eye. Epistemological Nightmare predates it but it was in it.
06:19:49 <Bike> I think my favorite was the story about the guy in one neuron.
06:19:56 <zzo38> I have read that Epistemological Nightmare before.
06:19:57 <shachaf> ?
06:20:11 <shachaf> _The Mind's I_ had three Smullyan excerpts in it.
06:20:13 <Bike> Uhm, let me find the title...
06:20:26 <shachaf> You should read other Smullanbooks!
06:20:31 <Bike> Probably.
06:20:42 <Bike> I've read other Borgesbooks and Hofstadbooks.
06:21:06 <shachaf> Smullyanbooks are the best.
06:21:35 <Bike> Oh and Lembooks.
06:21:50 <shachaf> Well, everyone's heard of Lem.
06:22:08 <Bike> And the story I'm thinking of is "The Story of a Brain", by Arnold Zuboff.
06:22:17 <shachaf> Łem
06:22:25 <Bike> good letter
06:23:50 <doesthiswork> there doesn't seem to be any difficulty to this story
06:23:50 <oklopol> zzo38: how does it not describe beliefs?
06:23:58 <Bike> doesthiswork: which
06:24:10 <doesthiswork> most recent link
06:24:21 <doesthiswork> epistemological nightmare
06:24:31 <shachaf> Hmm, what were the other two Smullcerpts in that book?
06:24:45 <shachaf> There was _Is God a Taoist?_ and _An Unfortunate Dualist_, I think.
06:25:12 <Bike> Seems so.
06:25:16 <Bike> I've also read the one about laughter.
06:25:54 <shachaf> You should read his books!
06:26:00 <zzo38> oklopol: I don't mean it doesn't describe beliefs, I mean it doesn't *necessarily* describe beliefs. That is different.
06:26:02 <shachaf> They're good.
06:26:27 <zzo38> Not everything can be describe by some logic; that is why you need many different kinds.
06:26:34 <Bike> I know a guy who loves Smullyan. I'm just a slow reader.
06:27:07 <Sgeo> :t maybe
06:27:08 <lambdabot> b -> (a -> b) -> Maybe a -> b
06:27:46 <oklopol> first you say it describes beliefs and other things, then you say "Not everything can be describe by some logic"? can you give an example mr constructivist because your previous sentence wasn't one?
06:28:15 <zzo38> oklopol: I do not understand you.
06:28:22 <oklopol> no prob, we'll talk later
06:28:23 <oklopol> off to work
06:28:31 <zzo38> Or maybe you do not understand me.
06:28:41 <zzo38> I am unsure which is true (possibly both).
06:30:14 <Bike> B_z(¬U_zO∨¬U_oZ)
06:30:36 <zzo38> Another example of paradox means: Epimenides of Crete says "All cretans are liars."
06:31:24 <zzo38> There are other Cretans, and he may have said other things. But what if, he is the only one and he only ever says one thing, which is that?
06:33:13 <Bike> shachaf: How about "To Mock a Mockingbird" particularly?
06:35:04 <shachaf> Bike: Well, that's a "puzzle" book about combinatory logic.
06:35:23 <shachaf> I was thinking of _The Tao is Silent_, _This Book Needs No Title_, and _5000 B.C._ here.
06:35:33 <shachaf> The puzzle books are good too, though!
06:35:46 <zzo38> I have never read any of them but I wanted to read all of them.
06:36:37 <zzo38> I believe it is Monday, but it is not.
06:38:45 <Sgeo> 4 people just picked up a freebie I offer in SL
06:38:49 <Sgeo> In the space of an hour
06:39:00 <Sgeo> I have to wonder if there's a blog post or something mentioning it
06:40:50 <zzo38> If you are at a railroad where the track splits into two. There is a switch. There is ten children playing on the north track and one on the south. The train is heading toward the north track. There is no time to warn anyone. What will you do and why?
06:41:06 <Bike> ugh, that question.
06:42:05 <zzo38> I ask some people I know who give different reasons; my reasoning is also different to that commonly shown in books.
06:42:13 <zzo38> But also different to who I asked.
06:42:18 <Bike> have you gotten the answer "I don't know"?
06:42:26 <zzo38> No.
06:42:32 <Bike> that is my answer.
06:42:33 <elliott> oh, to mock a mockingbird is that smullyan guy?
06:42:37 <Bike> yeah.
06:42:39 <zzo38> Bike: OK.
06:42:42 <Bike> big on crazylogic
06:45:44 <zzo38> My answer is: I would try to warn them (I know it says there is not time), and leave the switch alone. I don't know how serious problems would be made up if the train goes on the other track (maybe collisions? or maybe they just don't get to their proper destination?), and furthermore, those people on the track are making their own mistake and need not be saved.
06:46:08 <doesthiswork> zzo38: my answer I didn't evolve to answer such questions, ask me one which is within 2 standard deviations of the mode.
06:46:09 <zzo38> (Perhaps the one on the other track is smart since they know about the trains?)
06:47:17 <zzo38> Or, to answer the question more simply: I am not a train conductor.
06:47:40 <zzo38> doesthiswork: Which one of what?
06:47:56 <kmc> i would make the train wipe out the 10 children, then exploit the tragedy to get more railroad grade separations built, saving more lives in the long run
06:48:07 <kmc> except in the US it wouldn't go down like that
06:48:21 <kmc> instead we would ban trains and start handing out free assault rifles at the post office or something
06:48:45 <doesthiswork> the train questions are fun but most people that ask them forget about the shear uncertainty of life
06:48:46 <Bike> Anti-train firearms.
06:48:58 <Bike> zzo38: Does your question come with the related followup?
06:49:43 <zzo38> I happen to not put human dignity/life above absolutely everything else. Important is yes, the most important thing ever is no.
06:49:57 <zzo38> Bike: What related followup?
06:50:08 <Bike> The same question but with a hospital? Have you heard it?
06:50:24 <zzo38> Yes I have, but not in this book.
06:50:31 <doesthiswork> bike: http://what-if.xkcd.com/18/
06:50:50 <Bike> I think it's fun to follow the first with the second. Often people have more moral objections to organ harvesting for whatever reason.
06:50:57 <elliott> 06:47:56 <kmc> i would make the train wipe out the 10 children, then exploit the tragedy to get more railroad grade separations built, saving more lives in the long run
06:51:02 <elliott> thats like the biggest lie ive ever seen
06:51:18 <Bike> doesthiswork: I was thinking like, anti-materiel, but bb is good too
06:51:19 <zzo38> O, yes, that one is in the book but in a different section.
06:51:28 <doesthiswork> zzo38: which one of what of what?
06:51:30 <zzo38> I would ask the person if it is OK.
06:51:47 -!- hagb4rd has joined.
06:52:08 <pikhq> I would derail the train, thereby causing maximal misery. :P
06:52:45 <Bike> I think the best response I've heard to the question so far was an elaborate action movie combat sequence that ended with everybody safe and the train on fire.
06:52:52 <shachaf> zzo38: what if all of humanity is on one track
06:53:07 <zzo38> My answers are often different because I consider human dignity/life to be important but not above everything else.
06:53:30 <zzo38> shachaf: In that case nobody is operating the train, and I would try to destroy the train.
06:53:43 <Jafet> The cosmic train of plowing
06:53:51 <Jafet> @quote invisible.train
06:53:51 <lambdabot> kmc says: a monad is like an invisible train filled with jello traveling backwards in time
06:54:04 <shachaf> kmc did you really say that
06:54:04 <Bike> that is an awesome train
06:54:10 <kmc> who knows
06:54:15 <Bike> zzo38: good answer
06:54:28 <shachaf> @@ @@ @where quonochrom
06:54:28 <lambdabot> monochrom says: Dilbert's substitutability principle. A subclass's programmer should work as a drop-in replacement of his/her predecessor.
06:55:20 <zzo38> However, if there are a large number of people in the train, and everyone else other than myself on the track, my answer would be the same as the original question.
06:56:19 <zzo38> The train will probably eventually stop once they find out what happened or once the wheels get messed up and the train no longer works, so it still won't kill everyone, even if much larger than otherwise.
06:56:19 <hagb4rd> no we're not heading for the abyss
06:56:23 <Bike> It actually kind of bothers me, in the epistemological nightmare story, that the machine can answer a moral question.
06:56:25 <shachaf> zzo38: what if you are the train
06:56:34 <hagb4rd> we're just waiting for the impact
06:56:43 <shachaf> Bike: Man, you should read the other books.
06:56:45 <zzo38> shachaf: If I am operating the train, I would stop it temporarily.
06:56:48 <shachaf> They're "p.great"
06:56:56 <shachaf> zzo38: Not operating the train. are the train.
06:57:21 <zzo38> shachaf: OK. Would I be allowed to stop it, though, in such case?
06:57:47 <shachaf> I'm not sure.
06:57:53 <shachaf> Are trains allowed to stop themselves?
06:57:54 <zzo38> (If not, there is nothing to be done.)
06:58:55 <hagb4rd> here that's for all the people who get mad about spelling all the time: http://www.friends.hosted.pl/redrim/Reading_Test.jpg
06:59:34 <Bike> I wonder why that's always attributed to Cambridge.
06:59:39 <Bike> shachaf: I don't think that trains have intention.
07:02:12 <Sgeo> "I prefer to not pretend floats form any sort of structure amenable to reasoning."
07:05:19 <kmc> a wise policy
07:05:57 <zzo38> There are camels in all large cities. There are no camels in Germany. The city of B. is in Germany. Are there camels there or not?
07:06:32 <zzo38> This question was asked of a peasant who did not entirely understand.
07:07:16 <zzo38> It seems clear there shouldn't be, but apparently B. is a large city (the part about camels in large cities was from the peasant)
07:07:24 <Bike> Ooh, that's... shit, what's his name? The psychologist.
07:07:29 <zzo38> Yes.
07:07:48 <Bike> Ugh, I've been meaning to read his books forever too. Even if he had no ability to tell when Uzbek peasants were fucking with him.
07:08:07 <zzo38> A. R. Luria
07:08:32 <Bike> yeah, him. mostly i wanted to read the one about the soldier, see if that gets me into Vygotsky or whatever
07:10:17 <zzo38> The disclaimer in this book says many things, including "Contains a substantial amount of non-tobacco ingredients", "Avoid contact with skin", and "Abandon hope all ye who enter here".
07:10:21 <Bike> that particularly seems like a good example of not taking syllogistic reasoning too seriosuly.
07:12:06 <zzo38> What is the name of this book? What is the Name of This Book. I don't know, that's why I asked you.
07:13:04 <zzo38> (Something I wrote below a paragraph mentioning the other book)
07:15:29 <Sgeo> `slist
07:15:32 <HackEgo> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
07:16:03 <shachaf> Sgeo: when are you going to start caring about us olisters
07:16:22 <Sgeo> shachaf, I believe I did recently olist for the recent OOTS
07:16:27 <Sgeo> `pastelogs `olist
07:16:32 <shachaf> You did.
07:16:38 <shachaf> But it's not updating often enough?
07:16:59 <HackEgo> No output.
07:17:11 -!- Sgeo has changed nick to NotRichBurlew.
07:20:38 -!- NotRichBurlew has changed nick to Sgeo.
07:39:07 <Sgeo> Erfworld list!
07:46:19 <zzo38> Can there be type systems (or types) involving temporal logic and doxastic logic and deontic logic and so on?
07:47:48 <Bike> i'm sure there's work on modal type theory.
07:48:19 <kmc> http://blog.sigfpe.com/2006/11/from-l-theorem-to-spreadsheet.html
07:48:42 -!- fftw has quit (Ping timeout: 264 seconds).
07:48:52 <Bike> that was fast.
07:49:06 <Bike> oh, of course they're functors
07:49:29 <shachaf> monadal logic
07:49:36 <shachaf> s/ l//
07:49:37 <kmc> comment says that neither □ nor ◊ is a functor
07:50:02 <zzo38> I have seen that and the comments.
07:50:09 <Sgeo> AFAIK □ is for system related variables and ◊ separates statements
07:50:21 <Sgeo> I... even ◊ is overloaded in different contexts
07:50:28 <Bike> wrong context sgeo
07:50:28 <Sgeo> Is there anything, whatsoever, that isn't?
07:50:44 <shachaf> Hmm, it has □(a -> b) -> □a -> □b, but not (a -> b) -> □a -> □b?
07:50:47 <Sgeo> Bike, I know, ◊ is APL and ... whatever kmc is talking about is some mathematical thing
07:50:53 <monqy>
07:51:08 <shachaf> elliott: What is that?
07:51:17 <Sgeo> Is there _anything_ which stays the same over all contexts that are typically described in English?
07:51:18 <Bike> shachaf: does a -> □a anyway
07:51:26 <Bike> Sgeo: pff no
07:51:29 <Sgeo> all in-use contexts.
07:51:30 <monqy>
07:51:50 <Bike> let me just consult my big ol' book of everything that anybody has ever meant to say
07:51:57 <Bike> ...nope, still a negative answer
07:52:17 <shachaf> monqy: more creativity plz
07:52:24 -!- fftw has joined.
07:52:37 <shachaf> :◊)
07:52:46 <shachaf> :□(
07:52:47 <monqy> :☃(
07:53:03 <shachaf> monqy: ÷ↁ
07:53:12 <Bike> that's a creepy-ass smiley dude
07:53:18 <monqy> =/ … ≠
07:53:40 <monqy> ±)
07:53:52 <shachaf> (∓
07:54:19 <shachaf> Bike: ↁ÷
07:54:26 <Bike> help
07:54:41 <monqy> :↵)
07:55:26 <shachaf> :∘∈
07:55:30 <Bike> «There *is* a nice interpretation of □ as something like C/C++'s 'const'. » kmc the dance floor is calling
07:55:40 <kmc> :3
07:55:58 <kmc> https://twitter.com/Horse_ebooks/status/149754124265721856
07:56:43 <Bike> everything happens so much
07:57:21 -!- Nisstyre-laptop has quit (Quit: Leaving).
07:58:42 <Sgeo> I'm confused.
07:58:55 <Sgeo> horse_ebooks is supposedly a genuine spambot, right?
07:59:00 <Bike> yeah
07:59:26 <Bike> it posts links sometimes
07:59:27 <Sgeo> But the website linked has books that are about horse_ebooks, and that seems to be aware of @horse_ebooks
07:59:33 <Sgeo> (In the profile)
07:59:52 <shachaf> Hmm, □ looks a lot like a comonad. :-(
07:59:57 <shachaf> I wonder what it is.
08:00:00 <Bike> shachaf: so it says in the comments.
08:00:11 <Bike> shachaf: do you mean like in boring old modal logic or what
08:00:36 <Bike> Sgeo: horse_ebooks has transcended marketing ebooks and can now market itself
08:01:20 <kmc> horse_ebooks is a dynamic, viral social media property
08:03:09 <shachaf> Hmm.
08:03:15 <shachaf> Maybe it's still salvageable.
08:03:35 <Bike> □?
08:09:36 <Sgeo> Apparently horse_ebooks changed
08:09:52 <Sgeo> "Multiple articles have been written about why @Horse_ebooks changed and started sucking (on September 14th, 2011.) This is possibly the weirdest example of the trope, considering that Horse_ebooks is a spambot on Twitter with a strange knack for Word Salad Humor."
08:10:08 <Bike> you are not reading tvtropes
08:10:50 <Sgeo> What's bad about tvtropes?
08:11:07 <Bike> i guess i probably shouldn't rant about it
08:11:29 <Sgeo> But then you fail to answer my question.
08:11:43 <Bike> yes, but i have other priorities than answering your question.
08:11:55 <Bike> so instead: you don't even have to read horse_ebooks directly, we have horse_ebooks and a billion fannish blogs to get horse ebooks from
08:12:53 <Sgeo> Oh, incidentally, the thing I quoted from TV Tropes isn't claiming that horse_ebooks started sucking, it's saying that there are people in the fandom shouting that it started sucking.
08:13:31 <Bike> the... horse_ebooks fandom
08:13:39 <Bike> horse_efandom?
08:16:09 <Bike> shachaf: so have you heard about lewis's thing with ◊
08:17:51 <shachaf> lewis?
08:17:59 <Bike> david
08:18:04 <Bike> big in modal logic crap
08:18:31 <Bike> way he figured it, every possible world literally exists in the same way ours does
08:18:59 <Bike> it's like many worlds in quantum except serious
08:19:47 <Sgeo> Bike, sounds like Tegmark
08:20:00 <Sgeo> Well, somewhat like Tegmark
08:20:26 <zzo38> If it is mathematical existence, then I would agree that every possible world is exists.
08:21:08 <Bike> Sgeo: tegmark might be broader and include impossible worlds
08:21:08 <fizzie> Are there horse_ebooks fanfics?
08:21:15 <Bike> there's horse_ecomics.
08:21:37 <Bike> @google horse_ebooks fanfiction
08:21:40 <Sgeo> If there is a mathematical structure in which a mind can be described and will, along some "time" dimension in the structure, exist within the structure, is that mind conscious, and thus make the structure "real"?
08:21:41 <lambdabot> http://horseebooks.tumblr.com/
08:21:41 <lambdabot> Title: horse_ebooks fanfics
08:21:54 <Bike> well then
08:22:15 <Bike> Sgeo: you sure the last clause follows from the second to last?
08:22:50 <Sgeo> Well, if the mind is conscious, then the mind would perceive the structure as "real"
08:23:10 <Bike> (a) that makes it real? (b) that's not necessary
08:23:22 <Bike> what if i make a gnostic AI, eh
08:24:03 <Bike> though, reminds me of that lem story
08:24:09 <Sgeo> If our universe is such a structure, and only exists because it's a possible mathematical description of entities with minds, then our universe is no more "real" than this other mind's universe.
08:24:13 <Sgeo> lem story?
08:24:59 <elliott> qqqqq
08:25:20 <Sgeo> elliott, it's your fault I'm interested in Tegmark.
08:25:28 <Bike> a story about a bunch of trash that gets hit in such a way that it assembles into a "robot"
08:25:41 <Bike> the robot however has no external sensory anything, so it can only think
08:25:57 <Bike> it figures that it's God and imagines a world
08:26:12 <elliott> cant a guy say q
08:26:25 <Bike> also i'm pretty sure tegmark should not try philosophy so, but he did cool stuff with orch-or so i can forgive him.
08:26:38 <Sgeo> orch-or?
08:26:42 <Bike> are there like, non-crazy cosmological theories somewhere
08:26:56 <Bike> Sgeo: penrose's thing about quantum brains
08:27:25 <Sgeo> I thought Penrose's brain stuff was considered crazy, but I never actually looked at it
08:27:30 <Bike> it is
08:27:43 <Bike> tegmark wrote a paper about how unlikely it was that quantum-scale effects could effect anything on the neuro scale
08:27:50 <kmc> Bike: that robot is like a boltzmann brain
08:28:01 <Bike> kmc: basically
08:28:28 <kmc> maybe i'm FreeFulling a bit here
08:28:51 <Sgeo> I don't have enough of a mental model of FreeFull to determine what is meant by "FreeFulling"
08:28:52 <Bike> except that it doesn't have itself as a member of its imagined universe
08:28:56 <Bike> neither do I
08:29:07 <elliott> kmc: its called anmastering
08:29:11 <elliott> where were you in 2008 motherfucker
08:29:14 <Sgeo> I know what zzo38ing is, and Sgeoing would presumably be looking at a bunch of languages in rapid succession
08:29:22 <Bike> also in the end of the story the robot gets hit by another piece of trash and ceases to be
08:29:25 <Bike> fun stuff
08:30:15 <shachaf> I think Sgeoing would be informing #esoteric of everything you do.
08:30:32 <Sgeo> Believe it or not I don't do that.
08:30:41 <Sgeo> Although I have the stereotype of doing that, admittedly.
08:30:43 <Bike> luckily biking is just a convenient mode of transportation
08:30:59 <Sgeo> And maybe I do do that when doing computer stuff.
08:31:09 <Sgeo> Well, no "computer stuff" is way too broad.
08:31:18 <shachaf> Bike: What about Biking?
08:31:20 <elliott> i remember the good old days when sgeo did actually inform #esoteric of everything he died :(
08:31:23 <elliott> ...
08:31:23 <elliott> did
08:31:57 <Bike> shachaf: Biking is just biking while starting a sentence
08:32:06 <elliott> elliotting is saying dumb fucking things all the time
08:32:09 <elliott> remember when i did that; i still do that
08:32:17 <Bike> r u ok
08:33:12 <elliott> no
08:33:20 <Bike> aww
08:33:23 <Bike> stop being not ok
08:33:29 <elliott> thanks you fixed everything
08:33:31 <elliott> bike for president
08:33:56 <Bike> president of the united states of elliott
08:34:19 <shachaf> elliott: is proof general being mean to you
08:36:28 <FreeFull> I have no idea what FreeFulling is myself
08:36:44 <elliott> that seems apropos
08:36:59 <Bike> kmc solve the mystery now
08:40:59 -!- impomatic has quit (Quit: impomatic).
08:51:28 -!- monqy has quit (Quit: hello).
09:01:09 <Sgeo> "Agda safety: we last proved false on April 18th 2012"
09:01:44 <Bike> snerk
09:02:35 <zzo38> Did they fix it?
09:02:46 <zzo38> Does it even need to be fixed?
09:03:19 <Bike> being able to prove an absurdity is often considered a problem, yeah
09:05:06 <zzo38> Well, yes, but I thought maybe they would use unsafe commands or something like that
09:07:14 <Sgeo> Probably if they used unsafe commands to do it, it would not be notable.
09:08:55 -!- FreeFull has quit.
09:09:42 <zzo38> OK
09:22:26 -!- DHeadshot has joined.
09:25:34 -!- epicmonkey has joined.
09:28:46 -!- Bike has quit (Ping timeout: 245 seconds).
09:30:31 -!- oerjan has joined.
09:31:43 <hagb4rd> confutatis
09:31:51 <hagb4rd> maledictis
09:31:58 <hagb4rd> flammis acribus addictis!
09:32:31 <hagb4rd> salve oerjan
09:34:40 * oerjan disrumpit hagb4rdum cum malleo =====||
09:35:50 <oerjan> dico, ave
09:48:09 -!- nooga has joined.
10:11:45 -!- Phantom_Hoover has joined.
10:13:56 <doesthiswork> you should have a look at my language http://pastebin.com/Njckq9v5
10:15:28 <oerjan> doesthiswork: btw have you seen Kayak
10:15:50 <doesthiswork> nope
10:15:53 <oerjan> there's also reversible brainfuck
10:16:17 <oerjan> well, in fact we have a reversible computing category
10:18:14 <oerjan> doesthiswork: typo: "programms"
10:18:23 <doesthiswork> thanks
10:21:00 <oerjan> ", so you are not allowed to do that." <-- is that actually enforced somehow?
10:23:23 <oerjan> the obvious thing after seeing kayak and reversible brainfuck is to make there be a test on exit as well, and the whole thing is a loop if the test doesn't pass
10:23:48 <doesthiswork> kayak looks fun
10:23:57 <doesthiswork> yes it is enforced
10:24:31 <doesthiswork> reversible brain fuck is in a different category
10:24:40 <doesthiswork> it stores it's history
10:24:59 <oerjan> um that's just the TC proof
10:25:03 <oerjan> (which i wrote up)
10:26:10 <doesthiswork> sorry I missunderstood
10:27:44 <oerjan> as long as there is no IO, there's an easy trick called a "cascade" to remove the history again - basically after doing a computation, copy the result elsewhere and then do the computation in reverse. you end up with the original input + the result, but no history.
10:28:23 <doesthiswork> yes, that would cost that many bits of entropy
10:28:42 <oerjan> no. that's still entirely reversible.
10:29:08 <elliott> i suspect differing definitions are being used.
10:29:27 <oerjan> the place you want to copy the result to needs to be something like an array of zero bits.
10:30:27 -!- azaq23 has joined.
10:30:35 -!- azaq23 has quit (Max SendQ exceeded).
10:30:37 <oerjan> well i'm going by http://en.wikipedia.org/wiki/Landauer%27s_principle plus the actual reversible circuit design and language i once read about
10:30:56 -!- azaq23 has joined.
10:31:02 <doesthiswork> those zeroed bits didn't just happen randomly, they were created or found somehow
10:31:16 <oerjan> which means that logical reversibility is the same as "implementable with arbitrary low entropy increase"
10:31:34 <elliott> note that i did not claim both definitions were correct.
10:31:55 <oerjan> doesthiswork: well ok. anything that is to be TC needs to have an infinite source of known bits to use.
10:32:34 <oerjan> but as long as the entire computation is known and reversible, no actual increase in entropy happens by using them
10:33:01 <doesthiswork> yes, not until copy the result
10:33:06 <doesthiswork> *you
10:33:13 <oerjan> no, the copy of the result is not irreversible.
10:33:42 <doesthiswork> but the place you put it just lost it's history
10:33:56 <oerjan> it's just doing a loop of xor's or +
10:34:14 <doesthiswork> xors lose information
10:34:15 <oerjan> doesthiswork: no it didn't. you are copying under the _assumption_ the target was known to be zero.
10:34:20 <oerjan> ...no they don't.
10:34:46 <doesthiswork> sorry I thought you meant setting it to 0 useing xors
10:34:53 <Phantom_Hoover> so i'm going to assume this discussion continued through the night
10:35:00 <oerjan> x = x xor y is an entirely reversible operation when x and y don't share
10:35:19 <oerjan> doesthiswork: no, just for the actual transfer of data.
10:37:17 <doesthiswork> the cost was paid when the bits were set to 0
10:37:45 <doesthiswork> and yes x = x xor y is reverseable
10:38:12 <shachaf> "don't share"?
10:38:28 <oerjan> shachaf: x = x xor x isn't very reversible, sadly
10:38:58 <oerjan> *alias may be the fancy term
10:39:06 <shachaf> Oh, sure.
10:39:27 <doesthiswork> it's why linear types are kinda cool
10:39:52 <oerjan> doesthiswork: well the cost of setting the bits to 0 might just be considered primordial, the cost of getting a low-entropy universe to compute in in the first place.
10:40:55 <doesthiswork> if I don't keep track of all the costs then it loses some appeal
10:41:26 <oerjan> well, like with reversible brainfuck you are assuming you start with an infinite tape of zeroes.
10:41:42 <oerjan> and there is no entropy cost _after_ the start of that.
10:41:54 -!- carado has joined.
10:43:51 <doesthiswork> I was thinking that the infinite tape of zeros was created lazily so that it was easier to keep track of how many bits you'd spent
10:44:03 <oerjan> doesthiswork: anyway the cascade means you use up much fewer bits than if you just kept the history.
10:44:20 <doesthiswork> yes it does
10:45:32 <oerjan> and moreover, if the copied output is used for computing something else, you can do a new cascade to get rid of the intermediate data.
10:45:55 -!- aloril has quit (Ping timeout: 256 seconds).
10:46:24 <oerjan> (i think that was somewhat intended in using the word "cascade", my memory is rather vague.)
10:47:14 <oerjan> kayak also seems to have somewhat lazy creation of zero bits.
10:48:07 <oerjan> as in, you can get a new stack of zeroes any time, and use whatever you want from it, but it has to contain all zeros when you discard it - but they might not be the "original" zeroes.
10:53:08 <oerjan> doesthiswork: btw you don't seem to have a syntax that is the reverse of using t and f
10:53:41 <oerjan> which means it's not obvious how to reverse an arbitrary function
10:55:24 <doesthiswork> t and f were a way to dynamically expand the the bitvector
10:55:40 <doesthiswork> they are represented in the output
10:56:47 <oerjan> doesthiswork: right, but it is useful to be able to reverse them to say "these bits are now in a clean state again, and can be used to allocate more t's or f's later"
10:57:35 <doesthiswork> I see what you mean
10:59:47 -!- aloril has joined.
11:02:37 <oerjan> btw one nice feature of that reversible circuit design i saw was that in it, the bit bucket could be an actual physical device - when you really _wanted_ to delete garbage bits, you had to do so explicitly.
11:03:17 <oerjan> while all the rest of the circuit still was subject to landauer's principle and could work with low energy
11:22:36 <zzo38> Are you mad at God for not existing?
11:23:44 <zzo38> 99% think conformity is wrong. Do you?
11:25:26 <oerjan> zzo38: no, but sometimes for doing so
11:26:40 <zzo38> To which question? Both?
11:26:46 <oerjan> the first one
11:27:00 <oerjan> as for the latter, 99% is obviously a joke
11:27:15 <oerjan> (well so was the former, i guess)
11:27:33 <oerjan> but i'm still wondering if the real number is hypocritically high
11:27:37 <zzo38> Both are joke, I think
11:27:54 <zzo38> Nevertheless it is possible to think about it.
11:33:41 <oerjan> http://www.neverworkintheory.org/ <-- i'd just like to point out that this blog page currently contains the phrase "Or that learning Befunge makes you a better programmer (seriously, I've heard that claim too)."
11:33:48 <oerjan> er
11:33:56 <oerjan> <doesthiswork> kmc : http://www.neverworkintheory.org/
11:34:27 <oerjan> (trying to make a line copying and pasting from two different sources simultaneously is a _pain_ in irssi. hth.)
11:35:46 <oerjan> fizzie: you might have some anecdotical evidence regarding that claim, i suppose?
11:36:06 <fizzie> I made a claim?
11:36:24 <fizzie> Oh, someone else's claim.
11:36:39 <oerjan> i don't know whether _you_ did, but someone apparently did so.
11:37:00 <fizzie> Well, I mean, it's obviously true, I doubt the matter really needs any discussion.
11:37:06 <oerjan> you're like a befunge star programmer, after all
11:37:41 <oerjan> (possibly the only one?)
11:38:29 <zzo38> Are you mad at yourself for not existing?
11:38:40 <fizzie> I don't consider myself much of a Befunge programmer; e.g. mooz was a lot more into it than I, at least a decade ago.
11:38:46 <oerjan> zzo38: no.
11:38:51 <oerjan> ah
11:40:46 <fizzie> Also I have this idiosyncratic style that's somewhere between Befunge-93 and Funge-98; I don't really take advantage of many -98 features (stack stack, ;...;, x) yet I don't follow -93 either. Arguably that's not a good.
11:43:25 <elliott> is mooz or mtve the person who doesn't exist
11:44:28 <oerjan> i think i've seen mtve speak
11:44:58 <fizzie> They're different people. I don't really know about their status with respect to existence.
11:45:10 <fizzie> I've seen mooz online in Skype the other month.
11:45:16 <oerjan> also i have some trouble distinguishing mooz and m00t.
11:48:31 <fizzie> He also made this thing not long ago http://mak.hsl.fi/ it's in Finnish only, but in general you give it a point and it draws a map denoting how many minutes it takes to get there over public transportation.
11:50:20 <elliott> and mtve just shows music videos?
11:50:32 <elliott> this website looks much too fancy for a befunge programmer
12:10:32 -!- nooodl has joined.
12:12:06 -!- jconn has quit (Ping timeout: 264 seconds).
12:13:18 -!- fftw has quit (Ping timeout: 264 seconds).
12:13:55 -!- fftw has joined.
12:19:49 <oerjan> <elliott> Bike: I think you will find that literally everyone on the planet wnats to annoy me <-- hey, you too?
12:21:06 <oerjan> i was all set for a cosy time of log reading and surfing, but someone _had_ to start some horrible low-frequency noise somewhere
12:21:35 <shachaf> oerjan: I don't want to annoy you!
12:22:12 <shachaf> I'm just incompetent at it.
12:22:21 <oerjan> ...darn, my housemate forgot to close his fridge door, that might be why.
12:23:12 <oerjan> he really is not good with doors.
12:23:37 -!- fenris_kcf has left ("ISON NickServ ").
12:24:51 <oerjan> he forgets to close all doors except those i've _told_ him should be open.
12:25:29 <oerjan> (ok, i guess that might just be confirmation bias - he could just be random about them all)
12:28:30 <oerjan> <elliott> okay I believe I have sufficient information to discount the hypothesis that doesthiswork is cpressey <-- he also doesn't seem much like fax. knock on wood.
12:29:01 <oerjan> (if (s)he is (s)he has got much better.)
12:29:50 <doesthiswork> you won't believe me if I say I've never met most of you before, will you.
12:30:12 <oerjan> nah, that explanation is just too ridiculously simple
12:30:56 <Phantom_Hoover> you're ineiros' illegitimate son?
12:31:25 <Phantom_Hoover> you're kallisti's alternate personality
12:31:55 <nortti> 2
12:31:58 <zzo38> To make temporal logic types might be something resembling: type Next x y = x (Maybe y); data Future x y = Now (x y) | Later (Future x (Maybe y)); data Globally x y = Globally (x y) (Globally x (Maybe y)); Is that it? (Perhaps not quite???)
12:32:42 <oerjan> zzo38: i've read somewhere that temporal logic is the curry-howard correspondence of functional reactive programming
12:32:53 <oerjan> there might be a "linear" in there too
12:34:18 <oerjan> zzo38: is x meant to be a Functor or something else?
12:34:44 <zzo38> oerjan: Something of kind (* -> *)
12:34:59 <zzo38> I don't even know if I did it right; it is just an idea I had
12:35:40 <oerjan> ok
12:37:55 <oerjan> 03:48:04: <kmc> is (or, and) a field?
12:37:55 <oerjan> 03:49:17: <Bike> pretty sure it is
12:38:11 <oerjan> no, it's not even a ring because there are no inverses
12:38:12 <Phantom_Hoover> is it...
12:38:14 <Phantom_Hoover> yeah
12:38:25 <Phantom_Hoover> (xor, and) is, of course
12:38:27 <oerjan> (xor, and) is a ring, and a field for a single bit
12:39:00 -!- epicmonkey has quit (Ping timeout: 248 seconds).
12:39:12 <oerjan> (or, and) is a distributive lattice
12:39:37 <oerjan> and a semiring
12:41:00 <oerjan> (xor, and) is a boolean ring
12:42:28 <oerjan> @tell kmc <kmc> is (or, and) a field? <-- no, it's not even a ring because there are no inverses. it is a distributive lattice and a semiring.
12:42:28 <lambdabot> Consider it noted.
12:49:14 <zzo38> What I have is probably not best, perhaps Next would be instead a type family taking * and resulting * (or anything both the same kind) is might be closer how temporal logic is working
12:49:48 <elliott> doesthiswork: wait I have a guess
12:49:52 <elliott> doesthiswork: are you -- I know this is out there --
12:49:55 <elliott> doesthiswork: are you doesthiswork
12:50:07 <doesthiswork> no
12:50:13 <elliott> fuck
12:50:58 -!- epicmonkey has joined.
12:52:03 <zzo38> And then you would have type Globally = Cofree Next, or something like that
12:54:52 <zzo38> (It also means Future = Free Next)
13:03:50 -!- doesthiswork has quit (Quit: Leaving.).
13:04:08 -!- jconn has joined.
13:05:58 <oerjan> <shachaf> Łem
13:06:14 <oerjan> apparently it's Stanisław Lem
13:06:51 <shachaf> oerjan: I know.
13:06:55 <oerjan> which is good, since it means not everyone is hideously mispronouncing "Lem"
13:07:26 <shachaf> I was hoping to get the "dirt on the screen" reäction without mentioning his first name.
13:07:36 <oerjan> unlike Wałęsa
13:08:40 <oerjan> the ł is pronounced like english w, but the w isn't...
13:14:55 -!- oerjan has quit (Quit: leaving).
13:49:30 <zzo38> What is the name of the philosophical idea that under no circumstances can you use the same logic for absolutely everything?
13:53:17 -!- zzo38 has quit (Remote host closed the connection).
13:55:14 -!- boily has joined.
14:04:14 <fizzie> Stanisław Lemmings.
14:04:33 <fizzie> (Isn't that one of the "Lemmings" series of games?)
14:30:48 -!- ais523 has joined.
14:31:30 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
14:38:28 -!- ais523 has quit (Ping timeout: 248 seconds).
14:40:13 -!- FreeFull has joined.
14:50:50 -!- KingOfKarlsruhe has joined.
15:03:59 -!- Frooxius has joined.
15:13:51 -!- ogrom has joined.
15:13:56 -!- upgrayeddd has quit (Ping timeout: 256 seconds).
15:41:31 -!- sirdancealot7 has quit (Ping timeout: 260 seconds).
15:41:52 -!- Regis_ has joined.
15:44:54 -!- Regis__ has joined.
15:46:11 -!- sirdancealot has joined.
15:47:56 -!- Regis_ has quit (Ping timeout: 255 seconds).
15:54:20 -!- ogrom has quit (Quit: Left).
15:58:29 -!- hagb4rd|lounge has joined.
16:09:45 <kmc> http://hamberg.no/erlend/posts/2013-02-18-static-array-indices.html article about that int foo[static 10] we know and love
16:09:46 <lambdabot> kmc: You have 1 new message. '/msg lambdabot @messages' to read it.
16:16:36 -!- DHeadshot has quit (Ping timeout: 248 seconds).
16:26:15 -!- Regis__ has quit (Ping timeout: 256 seconds).
16:44:28 -!- upgrayeddd has joined.
16:58:25 -!- carado has quit (Quit: Leaving).
16:58:32 -!- carado has joined.
17:03:39 <kmc> TIL that Peter Thiel is a hardcore libertarian who thinks that maybe letting women vote was a bad idea
17:03:42 <kmc> http://www.cato-unbound.org/2009/04/13/peter-thiel/the-education-of-a-libertarian/
17:04:48 <elliott> didn't we alraedy know peter thiel was kind of crazy
17:05:34 <kmc> i didn't know specifically
17:05:44 <kmc> that's why it's "today i learned" and not "today elliott learned"
17:07:14 <pikhq> Today elliott learned: cocks
17:07:19 <elliott> by we
17:07:21 <elliott> i mean #esoteric
17:07:26 <elliott> ah yes thiel is the seasteading guy
17:07:44 <kmc> anyway i'll file this away for the next person who tells me startupland is a magical progressive meritocracy
17:07:46 <pikhq> Oh, that particular crazy dude.
17:07:49 <elliott> have to say that I also quite support the idea of getting a great big boat and then putting all the libertarians on it and never hearing from them again
17:07:54 <elliott> go peter thiel!
17:08:11 <kmc> yeah it would be nice
17:08:28 <kmc> i look forward to the boat getting seized by somali pirates on the third day
17:08:32 <kmc> and all governments refusing to help
17:10:23 <kmc> i'm not entirely unsympathetic to libertarians though
17:10:35 <kmc> in fact I think the US might be better off if the Republican Party had more libertarian views
17:10:40 <kmc> i still wouldn't vote for them but
17:10:55 <kmc> right now they basically have only the worst parts of actually conservative ideology
17:12:10 <FreeFull> I say both major US parties suck balls
17:12:25 <pikhq> Seems to me only one will even go so far as sucking balls.
17:12:35 <pikhq> The other just says "gaaaaay".
17:12:52 <kmc> one sucks balls, the other sucks balls in private while grandstanding about the homosexual agenda publicly
17:13:16 <kmc> FreeFull: i agree with you but i don't agree with the usual conclusion "therefore it doesn't matter who i vote for"
17:13:22 <kmc> there's still such a thing as the lesser of two evils
17:13:38 <kmc> especially now that the Republicans might actually be doomed
17:13:51 <kmc> maybe we will get an actual left wing party
17:14:04 <elliott> how's your voting reform working out
17:14:15 <kmc> we have voting reform?
17:14:20 <elliott> I see
17:14:21 <kmc> elliott: how's your voting reform working out oh wait it failed
17:14:26 <elliott> kmc: actually we did reform
17:14:31 <elliott> we turned from a 3-party system to a 2-party system
17:14:35 <kmc> heh
17:14:40 <elliott> because now nobody will ever vote for the third one ever again
17:14:48 <kmc> womp womp
17:16:34 <FreeFull> kmc: Well, I can't vote for either, I'm not an US citizen
17:20:23 <kmc> fair enough
17:20:24 <Phantom_Hoover> <kmc> especially now that the Republicans might actually be doomed
17:20:30 <kallisti> Phantom_Hoover: we are all just alternative personalities of kallisti
17:20:41 <Phantom_Hoover> because they've rightwinged themselves right out of political relevance?
17:20:53 <kmc> basically
17:21:07 <kmc> they can't get anyone other than old white men to vote for them
17:21:08 -!- epicmonkey has quit (Ping timeout: 248 seconds).
17:21:13 <kmc> and the proportion of old white men is shrinking
17:21:23 <Phantom_Hoover> er... don't the old white women vote for them
17:21:27 <kmc> some
17:21:29 <FreeFull> I have a strong feeling the programming language I want to create already exists, but I'm not sure
17:22:38 <kmc> Phantom_Hoover: they're not irrelevant yet, because the country is geographically polarized enough to give them lots of solidly conservative seats in the house
17:22:42 <FreeFull> Wait a minute, IBNIZ seems very similar
17:22:56 <FreeFull> Except in IBNIZ everything but number literals is one character
17:22:56 <kmc> and in the senate you only need 40% to completely obstruct proceedings
17:23:23 <kmc> so we might just be doomed to dysfunction more than anything else
17:23:42 -!- Regis__ has joined.
17:24:41 <kmc> but yeah, they are in an ideological extremism death spiral
17:24:54 <kmc> losing elections because you're too extreme and concluding that the solution is to become more extreme
17:25:58 <mroman> I just noticed something awesome.
17:26:04 <mroman> Burlesque does type checks at runtime.
17:26:23 <mroman> But since it's lazy, it can actually detect type errors befor calculating stuff :)
17:26:32 -!- carado has quit (Ping timeout: 256 seconds).
17:26:32 <mroman> *before
17:28:05 <mroman> some type errors at least.
17:29:39 <kmc> that's neat
17:33:20 -!- kallisti has quit (Ping timeout: 255 seconds).
17:34:14 <mroman> Sadly it does not really have practical use.
17:34:27 <mroman> because you'd have to catch errors
17:34:30 <mroman> and nobody does that :)
17:35:28 <mroman> checking errors means you don't trust your code.
17:35:47 <FreeFull> I don't see why you'd want to delegate type checks to runtime unless you're doing metaprogramming
17:36:26 <mroman> because it's tedious to do static checking.
17:36:44 <mroman> blsq ) {1 2.0 3 4 5.0})pd
17:36:45 <mroman> {1.0 2 3.0 4.0 5}
17:36:52 <mroman> flips int -> double, double -> int
17:37:54 -!- Bike has joined.
17:38:13 <mroman> {1 2.0 3 4 5.0})pd0!!n! wouldn't type check
17:38:24 <mroman> because the type of the first element in the list is changed at runtime to double
17:38:34 <mroman> which you would have to statically check.
17:39:24 <mroman> that essentially allows you to du
17:39:38 <mroman> if collatz_conjecture true: return (double)input else return (int)input
17:39:41 <mroman> *to do
17:39:52 <mroman> and how would one possibly type check that before executing the program?
17:40:09 -!- Arc_Koen has joined.
17:41:04 <mroman> static type checking would require more restrictions
17:41:15 <mroman> _would have required_
17:41:58 <mroman> I'm pretty sure you can't statically type check non-homogenous lists?
17:42:53 <mroman> Because a list might be [Int,Double,String,Maybe Int]
17:43:16 <mroman> and you could do stuff like if something_weird true: rotate left; else rotate right;
17:45:28 <mroman> unless you declare each element's type
17:45:29 <mroman> like
17:45:48 <mroman> rotate :: [Int,String,Maybe Int] -> [String,Maybe Int,Int]
17:48:17 <mroman> hm
17:48:27 -!- WeThePeople has joined.
17:48:28 <mroman> is there actually a GHC extension which would support that?
17:51:01 <FreeFull> You possibly could do it with typeclasses?
17:51:15 <mroman> quantithingy types?
17:51:16 <FreeFull> rotate :: rotatable a => [a] -> [a]
17:51:24 <FreeFull> Rotatable*
17:51:43 <mroman> the problem with that is you probably can't use
17:51:51 <mroman> (head ls)*5 then
17:52:14 <mroman> unless Rotatable implies Num
17:54:52 -!- carado has joined.
17:56:49 <kmc> http://venturebeat.com/2013/02/13/silicon-valley-salaries-developers-make-big-bank-in-2012-infographic/
17:56:58 <kmc> "The average salary of a Silicon Valley developer jumped about $4,300 in 2012 to reach $118,900"
17:56:59 <mroman> asTypeOf (0 :: Int) $ head ls
17:57:05 <mroman> that's probably impossible then.
17:57:39 <FreeFull> mroman: You could add a num constraint to rotate or rotatable
17:57:49 <mroman> yes
17:58:03 <mroman> but it still does not allow me to extract "concrete" types out of the list afterwards
17:58:17 <mroman> whatever the official term is for what I mean with "concrete" type
17:58:19 <FreeFull> As in, check what the type is?
17:58:28 <FreeFull> Or get the type you want?
17:58:31 <Bike> kmc: what, seriously
17:58:38 -!- augur has quit (Remote host closed the connection).
17:58:49 <mroman> well
17:58:54 <mroman> head ls is then Rotatable a
17:59:06 <mroman> -a
17:59:15 <FreeFull> What's ls
17:59:21 <mroman> the list
17:59:35 <mroman> you pass to your rotate :: Rotatable a -> [a] -> [a]
17:59:43 <mroman> *=>
18:00:06 <kmc> Bike: apparently
18:00:08 <FreeFull> Ah
18:00:16 <FreeFull> And asTypeOf is?
18:00:17 <kmc> photo: a young white guy in a bathtub full of cash
18:00:18 <kmc> seems about right
18:00:23 <mroman> :t asTypeOf
18:00:24 <lambdabot> a -> a -> a
18:00:33 <kmc> Bike: then again i'm told rent in SF has gone up by about $600/mo in the past year
18:00:42 <mroman> it's like const
18:00:49 <Bike> geez
18:01:23 <mroman> you can use existentially quantified types
18:01:27 <mroman> and put them in a list
18:01:47 <mroman> like forall a. Num a -> MyThingy a
18:02:00 <kmc> i'm sure paying someone $120k to write mobile social local cow clicker games represents a fundamental value to the economy and is not in any way a bubble ready to pop
18:02:00 <mroman> and you can use Num stuff on elements
18:02:12 <Bike> that just seems crazy high
18:02:15 <mroman> but you can't put a String into it
18:02:26 <mroman> nor can you get an Int out of the List
18:02:31 <FreeFull> So it returns the first value and causes the static typer to fail if the second isn't of the same type
18:02:48 <mroman> > asTypeOf (5 :: Int) 0
18:02:49 <lambdabot> 5
18:03:16 <mroman> > data Foo = forall a. Num a => NumFoo a
18:03:17 <lambdabot> <hint>:1:1: parse error on input `data'
18:03:23 <mroman> worth a try :)
18:03:31 <FreeFull> Actually, rotate shouldn't take a list, just an element
18:04:26 <FreeFull> Hmm, class Rotatable a { rotate :: (Rotatable b) => a -> b } errors out
18:04:58 <mroman> Prelude> data Foo = forall a. Show a => NumFoo a
18:05:05 <mroman> Prelude> let ls = [NumFoo 5, NumFoo 3.14159]
18:05:17 -!- glogbackup has joined.
18:05:18 <mroman> Prelude> :t head ls
18:05:19 <mroman> head ls :: Foo
18:07:08 <FreeFull> Oh, I forgot the where
18:07:40 <mroman> bottom line
18:07:46 <mroman> you can't to squat with the elements in the list.
18:08:59 <FreeFull> That's using a datatype though
18:09:33 <mroman> map (\(NumFoo x) -> NumFoo $ x*3) [NumFoo 3, NumFoo 4.5]
18:09:36 <mroman> ^- that you can do
18:09:41 <mroman> but you can't get x out of NumFoo
18:10:12 <mroman> FreeFull: rotate :: Rotatable a => [a] -> [a]
18:10:18 <mroman> ^- that's pointless anyway
18:10:33 <mroman> you can use rotate :: [a] -> [a] either way
18:10:52 <mroman> unless you wan't a version of rotate which only work with Rotatable
18:10:56 <mroman> *want
18:13:20 <FreeFull> Apparently I can't define instance Rotatable (Maybe Int) without -XFlexibleInstances
18:13:27 -!- sebbu has quit (Ping timeout: 252 seconds).
18:14:18 <kmc> that's not including perks either
18:14:34 <kmc> free meals at work, cleaning service for your house, free testicle wash, endangered animal pet of your choice
18:15:28 <kmc> FreeFull: yup
18:15:55 <kmc> FreeFull: standard Haskell instances must be of the form (C a b ...) where C is a single type constructor and a,b,... are variables
18:16:00 <mroman> whatever
18:16:23 <mroman> it's a fact that no Haskell function can return a different type depending on some input
18:16:31 <boily> kmc: hmm... free and delicious endangered pet. where can I apply?
18:17:57 <FreeFull> kmc: Means I can't do Ratio either
18:18:08 <FreeFull> Well, Ratio Int
18:18:13 <kmc> and the constraints on the instance must be type classes applied to just those type variables
18:19:08 <kmc> these restrictions make it very easy for a compiler to find instances, just by structurally taking apart types
18:19:16 <kmc> FreeFull: -XFlexibleInstances is a fine extension though
18:20:07 -!- Arc_Koen has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?").
18:20:36 <mroman> without it Ord [a] wouldn't even be possible, right?
18:20:57 <mroman> which makes it non standard to have Ord [a]?
18:20:59 <kmc> Ord [a] has the standrad form
18:21:05 <mroman> hm.
18:21:10 <kmc> (Ord a) => Ord ([] a)
18:21:22 <kmc> [] is just a funny name for a type constructor
18:21:32 <mroman> but
18:21:41 <mroman> instance Ord String would be illegal?
18:21:48 <mroman> wel
18:21:49 <mroman> obviosuly
18:21:51 <mroman> *well
18:21:53 <kmc> yes
18:22:14 <kmc> Text.Printf has that IsChar hack for this reason
18:22:26 <kmc> instance (IsChar c) => PrintfType [c]; instance IsChar Char
18:22:28 <mroman> it's actually illegal because of two reasons
18:22:32 <mroman> TypeSynonyms
18:22:37 <mroman> and FlexibleInstances
18:22:40 <mroman> if I remember correctly
18:23:12 <mroman> Printf has so many Typehacks I don't understand anything about it
18:23:19 <kmc> it's pretty gross
18:23:22 <Bike> hm
18:23:25 <Bike> what's the type of printf?
18:23:32 <mroman> Printable r => r or
18:23:35 <mroman> :t printf
18:23:36 <Bike> is it variadic?
18:23:36 <lambdabot> PrintfType r => String -> r
18:23:41 <FreeFull> instance Integral a => Rotatable (Ratio a) seems to be allowed but not Integral a => Rotatable a
18:23:41 <mroman> it is variadic
18:23:42 <mroman> somehow.
18:23:43 <kmc> in a language like Haskell you should not still be specifying formats using strings, the worst datatype
18:23:52 <Bike> "somehow" means some gross thing doesn't it
18:24:20 <kmc> it's not that complicated
18:24:39 <mroman> kmc: What do you mean @strings?
18:24:55 <kmc> i mean that you should use typed combinators to express formatting
18:24:56 <Bike> "The PrintfType class provides the variable argument magic for printf. Its implementation is intentionally not visible from this module." cool
18:25:09 <kmc> rather than a string containing "%d %s" whatever that the compiler knows nothing about
18:25:12 <kmc> @quote stark
18:25:12 <lambdabot> AlanPerlis says: The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information.
18:25:37 <FreeFull> Stringly typed things are a nightmare
18:25:56 <kmc> class Foo a where foo :: a
18:25:59 <kmc> instance Foo () where foo = ()
18:26:06 <kmc> instance (Foo a) => Foo (b -> a) where foo x = foo
18:26:26 <kmc> this gives you a "variadic function" foo which will take any number of arguments, ignore them, and produce ()
18:27:09 <FreeFull> What was that language that had a statically-typed compile-time printf?
18:27:11 <mroman> freaky
18:27:21 <mroman> FreeFull: gcc
18:27:25 <mroman> ;P
18:27:35 <FreeFull> No =P
18:27:42 <Bike> yeah if the format string is known ahead of time it's not that hard to verify
18:28:00 -!- ais523 has joined.
18:28:14 <mroman> FreeFull: Using strings?
18:28:39 <kmc> FreeFull: ocaml
18:28:53 <mroman> printf((if rnd(): "%d"; else: "%lf"),6.5) <- can it do that?
18:28:54 <FreeFull> Seems Fortran was what I was thinking of
18:29:13 <kmc> you can do it in Haskell too with TH
18:29:27 <kmc> write a macro to expand a format string into a format combinator expression, the thing I was saying you should write anyway
18:29:32 <mroman> I meant: Can it type check that
18:29:42 <kmc> ocaml can't i think
18:29:58 <kmc> Bike: you can also do variadic function like things without type classes
18:30:06 <kmc> data Nom a b = Moar (a -> Nom a b) | Kthx b
18:30:18 <Bike> ~_~
18:30:19 <kmc> this is kind of weird because the 'function' decides, at runtime, how many arguments it wants
18:30:29 <kmc> and can decide based on the values of previous arguments
18:30:35 <kmc> dependently variadic!
18:30:49 <kmc> of course it's not that different from the lowly [a] -> b
18:31:11 <FreeFull> Moar (\_ -> Kthx 3)
18:31:36 <FreeFull> Moar (\x -> Kthx x)
18:31:40 <FreeFull> But what is it good for?
18:31:45 <Bike> nothing!
18:32:45 -!- augur has joined.
18:32:48 <mroman> it can NomNomNom
18:33:09 <mroman> oh btw
18:33:33 <mroman> I'd like a haskell module with a function which calls a pure function and terminates it after 30s
18:33:37 <mroman> :)
18:34:29 <FreeFull> mroman: Probably exists
18:34:40 <kmc> http://lambda.haskell.org/hp-tmp/docs/2011.2.0.0/ghc-doc/libraries/base-4.3.1.0/System-Timeout.html
18:34:42 <mroman> I'd like to add a time limit to my interpreter
18:34:46 <FreeFull> The outer function would of course be impure
18:34:49 <FreeFull> So in IO
18:34:52 <mroman> but everything runs in a simple State Monad
18:34:54 <kmc> gggggggggggofgggfgfgffyffff
18:35:03 <FreeFull> You'll probably need StateT IO
18:35:07 <kmc> function types involving IO are not "impure"
18:35:14 <mroman> Can't use StateT IO
18:35:23 <kmc> (a -> IO b) is a PURE FUNCTION returning an IO ACTION which is also an INERT FIRST-CLASS VALUE
18:35:27 <FreeFull> kmc: I use impure to mean needs RealWorld here
18:35:28 <mroman> I don't want to rewrite my whole interpreter
18:35:35 <kmc> what the fuck with this RealWorld bullshit
18:35:38 <kmc> whatever
18:35:43 <kmc> calm down kmc, this isn't #haskell
18:35:43 <FreeFull> I guess the function itself isn't impure
18:36:01 <kmc> mroman: so use timeout in conjunction with Control.Exception.evaluate
18:36:31 <olsner> hmm, "British Railway Journeys: Killarney to Cobh" was exactly as boring as the name would suggest
18:36:34 <mroman> why Control.Exception?
18:36:46 <kmc> mroman: timeout puts a timeout on the execution of an IO action
18:36:55 <kmc> (return x) takes no time to execute, even if it would take some time to subsequently evaluate x
18:37:03 <kmc> so you need (evaluate x)
18:37:17 <mroman> so
18:37:20 <FreeFull> So timeout 30 $ evaluate puresomething
18:37:32 <mroman> timeout (return $ reverse [1..]) would do what?
18:37:33 <kmc> or maybe even evaluate (rnf x)
18:37:37 <kmc> to evaluate it deeply
18:37:48 <kmc> mroman: executing that IO action will immediately finish and produce a thunk
18:37:52 <mroman> return Just $ reverse[1..]
18:37:55 <kmc> that thunk, if evaluated, would loop forever
18:37:58 <mroman> and when I print it my interpreter goes boomboom
18:38:11 <mroman> ic.
18:38:14 <mroman> I thought so.
18:38:20 <mroman> and evaluate does some magic to prevent that.
18:38:22 <mroman> neat.
18:38:27 <kmc> main = do x <- return (reverse [1..]); return ()
18:38:36 * FreeFull looks up the definition of evaluate
18:38:40 <olsner> ooh, they said hexham on TV!
18:38:47 <kmc> (evaluate x) is an IO action that, when executed, evaluates x to whnf before finishing
18:38:49 <coppro> olsner: ooh
18:38:54 <kmc> there are plenty of other IO actions that evaluate stuff
18:38:59 <kmc> like putChar
18:39:05 <kmc> has to figure out what the character is before printing it
18:39:18 <mroman> ok
18:39:19 <mroman> thx.
18:39:22 <mroman> I'll try that.
18:39:34 <kmc> as the docs point out, (evaluate x) is different from (return $! x) aka (x `seq` return x) as well
18:39:38 <FreeFull> kmc: Well, once putChar's action is executed, there is nothing to do but evaluate
18:39:55 <Bike> :t ($!)
18:39:56 <lambdabot> (a -> b) -> a -> b
18:39:59 <kmc> because if you simply *evaluate* (evaluate (reverse [1..])) as opposed to executing it, nothing blows up
18:40:02 <Bike> deep
18:40:03 <FreeFull> $! is strict $
18:40:05 <Bike> :t seq
18:40:07 <lambdabot> a -> b -> b
18:40:27 <kmc> the difference between evaluation and execution is really really really really important and anyone who goes on about 'pure vs impure' functions should stop doing that and learn about evaluation vs. execution instead
18:41:21 <FreeFull> Does evaluating (evaluate (reverse [1..])) always give you a thunk?
18:41:35 <kmc> evaluating anything never gives you a thunk
18:41:47 <kmc> a thunk is something that is not evaluated yet
18:41:47 <FreeFull> What does it give you then?
18:41:51 <kmc> evaluating it gives you a value
18:42:12 <FreeFull> So what sort of value does that give you?
18:42:12 <kmc> (evaluate foo) is an expression that evaluates to an IO action
18:42:20 <kmc> as is (putStr "hi world")
18:42:22 <FreeFull> Oh, it gives you an IO action
18:42:26 <kmc> an IO action is a value like any other
18:42:27 <FreeFull> Ok, that makes more sense
18:42:36 <kmc> you can pass them to functions, return them from functions, store them in datastructures, and nothing special happens
18:42:51 <kmc> they just describe side effects that could be performed
18:42:54 <FreeFull> I wonder if you could make an evaluate that works with State rather than IO
18:42:58 <kmc> the only effect which is actually performed is the one named 'main'
18:43:01 <FreeFull> Except you couldn't do the timeout thing
18:43:03 <Bike> so how do you perform th- oh
18:43:33 <Bike> wait, so main has to return for anything to happen?
18:44:08 <FreeFull> Bike: Well, main gets evaluated lazily
18:44:39 <FreeFull> Otherwise main = getChar >>= putchar . map something wouldn't work
18:45:26 <FreeFull> I don't know when exactly the IO actions get performed though
18:46:11 <kmc> FreeFull: it doesn't matter when main gets evaluated
18:46:19 <kmc> in fact it's nonsense to say "main gets evaluated lazily"
18:46:38 <kmc> like any other value in Haskell, it's not evaluated until it's needed
18:46:40 <kmc> which is immediately
18:46:48 <Bike> i'm just asking when or how IO actions are actually performed
18:46:59 <kmc> right and FreeFull is confusing you by talking about evaluation rather than execution
18:47:16 <Bike> execution means performance, right?
18:47:22 <kmc> Bike: to run a haskell program: evaluate 'main' and then perform the action so described
18:47:38 <Bike> whereas evaluation is "just" reduction to whnf
18:47:43 <kmc> an (IO t) is a data structure describing how to perform actions
18:47:43 <kmc> yes
18:47:50 <Bike> makes sense
18:48:08 <FreeFull> I see
18:48:19 <FreeFull> main gets evaluated to a single IO a action
18:48:28 <FreeFull> And then that IO a action gets executed?
18:48:35 <kmc> data IO t = Return t | PutChar Char (IO t) | GetChar (Char -> IO t)
18:48:39 <kmc> here's one model of what IO might look like
18:48:49 -!- sebbu has joined.
18:48:52 <kmc> or it might be data IO t = [JVMBytecode]
18:48:56 <kmc> or data IO t = CProgramAsAString
18:48:58 <kmc> it doesn't matter
18:49:04 <kmc> what matters is that it supports:
18:49:07 <kmc> * return and (>>=)
18:49:13 <kmc> * primitives like putChar, getChar, etc
18:49:23 <kmc> IO is an abstract data type; you're not supposed to know or care what's inside
18:49:26 <kmc> the point is
18:49:28 <kmc> it's just a data structure
18:49:34 <Bike> yeah, that makes sense
18:49:37 -!- nooga has quit (Ping timeout: 248 seconds).
18:49:51 <FreeFull> Is it possible to cause the evaluation itself to never complete, therefore nothing executing?
18:49:55 <kmc> a Haskell program computes such a data structure -- a pure computation -- and then hands it off to the runtime system, which performs those actions
18:49:58 <kmc> FreeFull: sure
18:49:59 <kmc> main = main
18:50:26 <Bike> so i am guessing there's no "perform" function to runtime it for you
18:50:34 <kmc> not in standard Haskell
18:50:39 <FreeFull> kmc: I am thinking something like main = putChar 'x' >> main except I think that would actually execute as much as it can
18:50:40 <kmc> that's what unsafePerformIO does in GHC
18:50:47 <Bike> oh, neat
18:50:48 <kmc> FreeFull: that just puts 'x' over and over
18:50:55 <FreeFull> Yeah, it would
18:50:57 <kmc> FreeFull: you can totally evaluate that 'main' to WHNF
18:51:08 <kmc> in our model above, you get (PutChar 'x' (PutChar 'x' (PutChar 'x' ...
18:51:11 <Bike> will unsafePerformIO will do the performance during evaluation?
18:51:12 <kmc> a data structure
18:51:17 <FreeFull> What can't you evaluate to WHNF?
18:51:31 <kmc> FreeFull: something that doesn't produce a constructor in finite time
18:51:46 <kmc> like (reverse [1..]) or (let x = x in x)
18:51:55 <kmc> if i ask you "what's the first constructor" you can't answer
18:52:04 <FreeFull> So reversing an infinite list or bottom
18:52:06 <kmc> whereas the first constructor of [1..] or (map (+1) [1..]) is (:)
18:52:13 <kmc> FreeFull: anything that can't be evaluated is bottom
18:52:22 <kmc> denotationally, all expressions that can't be evaluated are equivalent
18:52:32 <kmc> whether the actual result is a runtime error or an infinite loop or whatever
18:52:35 <Bike> is the constructor of (reverse [1..]) not (:)?
18:52:48 <kmc> Bike: no
18:52:51 <FreeFull> But simply plopping them in the middle of your IO action means that some of it gets evaluated to WHFN and can get executed, and the rest never will?
18:52:52 <kmc> @src reverse
18:52:52 <lambdabot> reverse = foldl (flip (:)) []
18:52:57 <kmc> well that's not super illuminating
18:53:09 <kmc> but anyway, you have to perform an infinite number of recursive steps before you spit out a (:)
18:53:14 <Bike> oh.
18:53:22 <kmc> FreeFull: i don't understand the question
18:53:23 <kmc> but anyway
18:53:32 <kmc> weak head-normal form means only that the *first* constructor is known
18:53:34 <kmc> the outermost
18:53:53 <kmc> which is why you can evaluate [1..] or (PutChar 'x' (PutChar 'x' (PutChar 'x' ...))) to WHNF
18:53:54 <FreeFull> kmc: If I have f = a >> b >> c
18:54:01 <FreeFull> a can get executed no matter what b is, right?
18:54:13 <kmc> what does that have to do with WHNF and evaluation?
18:54:19 <kmc> are you conflating evaluation and execution again?
18:54:39 <kmc> "a >> b >> c" just evaluates to a datastructure which describes the act of doing a, then b, then c
18:54:43 <FreeFull> Because f needs to get evaluatede
18:54:51 <FreeFull> But b is something that you can't evaluate
18:55:14 <FreeFull> Like bottom
18:55:52 <kmc> i don't know whether the Haskell report specifies whether IO's (>>) is strict in both arguments
18:55:56 <kmc> it probably isn't
18:56:14 <kmc> because (a >> b) is supposed to be equivalent to (a >>= (\_ -> b))
18:56:28 <kmc> and even if (>>=) forces both arguments, forcing (\_ -> undefined) is fine
18:56:47 <kmc> so it would only happen that (>>) is strict in both args if someone explicitly defines a "more efficient" version of (>>)
18:57:05 <mroman> hm
18:57:16 <mroman> kmc: Does Control.OldException.evaluate the same?
18:57:18 <kmc> but again, whether (>>) evaluates a or b now or later has no bearing on when the effects described by a or b are actually performed
18:57:22 <kmc> mroman: dunno
18:57:30 <FreeFull> I see
19:01:51 -!- blsqbot has joined.
19:02:03 <mroman> !blsq 50 2B!
19:02:04 <blsqbot> "110010"
19:02:11 <mroman> !blsq 1R@<-
19:02:27 -!- blsqbot has quit (Read error: Connection reset by peer).
19:02:30 <mroman> hm
19:02:31 <mroman> ok
19:02:37 <mroman> that timeout is too high :)
19:02:52 <boily> oh! a new bot!
19:03:14 -!- blsqbot has joined.
19:03:20 <mroman> !blsq 1R@<-
19:03:37 -!- blsqbot has quit (Read error: Connection reset by peer).
19:03:42 <mroman> hm.
19:05:32 <mroman> Timeout does not work the way it should.
19:07:22 <mroman> or it just allocates too much memory way too fast.
19:08:15 <mroman> but it takes 10s for out of memory to appear
19:08:26 <mroman> timeout should've killed it already by then.
19:08:41 <FreeFull> Is it me or is Racket the best you can get Scheme/Lispwise
19:09:16 <Bike> it's you and probably a good number of people who use racket
19:10:02 <FreeFull> Is it also the best you can get for DSLs?
19:11:20 <mroman> ah well.
19:12:06 <kmc> FreeFull: it's just you
19:12:56 -!- monqy has joined.
19:14:02 <FreeFull> kmc: Racket's DSLs are rather nice, although I don't know how much you can embed them into programs written in a different language
19:14:17 <shachaf> kmc: Do you know if it'd be valid for GHC to assume strict fields are tagged pointers to evaluated values?
19:14:43 <shachaf> Or whether the GC/something else makes that invalid.
19:17:25 -!- NuclearMeltdown has joined.
19:18:05 <quintopia> fizzie: aren't you sange.fi? or am i confused
19:20:23 <quintopia> oh it looks unmaintained, i must be wrong
19:22:00 <quintopia> oh fizzie is zem,fi
19:22:48 <quintopia> elliott: do you know who had esoteric.sange.fi
19:24:57 <mroman> kmc: It does not work if the program returns an infinite list
19:25:03 <mroman> because haskell does not evaluate it
19:25:32 <mroman> because it don't need to.
19:26:46 <kmc> shachaf: i don't know
19:27:00 <mroman> It works as it should.
19:27:23 <coppro> what is "133mXe" and why is it different from 133Xe?
19:27:52 <FreeFull> coppro: For what? Java flags?
19:28:06 <Bike> sounds pretty leet
19:28:44 -!- blsqbot has joined.
19:28:53 <mroman> !blsq 1 10r@++
19:28:53 <blsqbot> 55
19:28:59 <mroman> !blsq 1R@<-
19:29:19 <mroman> !blsq 6 -.^^0\/r@\/'0\/.*'1+]\/{\/{rt}\/E!XX}x/+]m[sp
19:29:20 <blsqbot> 1 0 0 0 0 0
19:29:25 <mroman> neat.
19:29:41 <mroman> !blsq "Go nuts!"sh
19:29:41 <blsqbot> Go nuts!
19:30:16 <boily> ~echo !blsq "`echo Bot chain!"sh
19:30:16 <mroman> !blsq "Hello, World"R@
19:30:17 <blsqbot> {"" "H" "e" "He" "l" "Hl" "el" "Hel" "l" "Hl" "el" "Hel" "ll" "Hll" "ell" "Hell" "o" "Ho" "eo" "Heo" "lo" "Hlo" "elo" "Helo" "lo" "Hlo" "elo" "Helo" "llo" "Hllo" "ello" "Hello" "," "H," "e," "He," "l," "Hl," "el," "Hel," "l," "Hl," "el," "Hel," "ll," "Hll," "ell," "Hell," "o," "Ho," "eo," "Heo," "lo," "Hlo," "elo," "Helo," "lo," "Hlo," "elo," "Helo," "llo," "Hllo," "ello," "Hello," " " "H " "e " "He " "l " "Hl " "el " "Hel " "l " "Hl " "el
19:30:29 <FreeFull> R is permutations?
19:30:38 -!- cuttlefish has joined.
19:30:41 <boily> ~echo !blsq "`echo Bot chain!"sh
19:30:41 <cuttlefish> !blsq "`echo Bot chain!"sh
19:30:45 <coppro> FreeFull: isotopes of Xenon
19:30:58 <fizzie> quintopia: atehwa.
19:30:59 <mroman> R@ is all subsequences
19:31:01 <fizzie> quintopia: Is sange.fi.
19:31:04 <mroman> !blsq {1 2 3}R@
19:31:05 <blsqbot> {{} {1} {2} {1 2} {3} {1 3} {2 3} {1 2 3}}
19:31:07 <boily> !blsq "test?"sh
19:31:08 <blsqbot> test?
19:31:08 <quintopia> fizzie: thanks
19:31:12 <boily> ~echo !blsq "`echo Bot chain!"sh
19:31:13 <cuttlefish> !blsq "`echo Bot chain!"sh
19:31:22 <boily> darn.
19:31:33 <FreeFull> no, seems to be combinations actually
19:31:50 -!- ChanServ has set channel mode: +o ais523.
19:31:53 <mroman> no
19:31:55 <ais523> I want to try to infinite-botloop
19:31:58 <mroman> !blsq {1 2 3}3cb
19:31:59 <blsqbot> {{1} {2} {3} {1 1} {1 2} {1 3} {2 1} {2 2} {2 3} {3 1} {3 2} {3 3} {1 1 1} {1 1 2} {1 1 3} {1 2 1} {1 2 2} {1 2 3} {1 3 1} {1 3 2} {1 3 3} {2 1 1} {2 1 2} {2 1 3} {2 2 1} {2 2 2} {2 2 3} {2 3 1} {2 3 2} {2 3 3} {3 1 1} {3 1 2} {3 1 3} {3 2 1} {3 2 2} {3 2 3} {3 3 1} {3 3 2} {3 3 3}}
19:31:59 <ais523> so I'm getting ready to +m to stop it
19:32:04 <mroman> ^- that's combinations
19:32:09 <Bike> everybody brace yourselves
19:32:10 <mroman> variations
19:32:12 <mroman> to be exact.
19:32:15 <FreeFull> Not combinations, subsequences
19:32:27 <mroman> !blsq {1 2 3}r@
19:32:27 <blsqbot> {{1 2 3} {2 1 3} {3 2 1} {2 3 1} {3 1 2} {1 3 2}}
19:32:28 * boily straps himself to his desk with some CAT5 cable
19:32:32 <mroman> ^- permutations
19:32:35 <FreeFull> > subsequences [1,2,3]
19:32:37 <lambdabot> [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
19:32:39 <nortti> #writefile foo ~echo #cat foo
19:32:42 <nortti> #cat foo
19:32:42 <oonbotti> ~echo #cat foo
19:32:43 <cuttlefish> #cat foo
19:32:43 <oonbotti> ~echo #cat foo
19:32:43 <cuttlefish> #cat foo
19:32:44 <oonbotti> ~echo #cat foo
19:32:44 <cuttlefish> #cat foo
19:32:45 <oonbotti> ~echo #cat foo
19:32:45 <cuttlefish> #cat foo
19:32:46 <oonbotti> ~echo #cat foo
19:32:46 <cuttlefish> #cat foo
19:32:48 <oonbotti> ~echo #cat foo
19:32:48 <cuttlefish> #cat foo
19:32:49 <oonbotti> ~echo #cat foo
19:32:49 <cuttlefish> #cat foo
19:32:50 <oonbotti> ~echo #cat foo
19:32:50 -!- cuttlefish has quit (Remote host closed the connection).
19:32:53 <Bike> this is a boring botloop
19:32:56 <Bike> needs more porn
19:33:01 <nortti> #rm foo
19:33:01 <boily> had to ^C my bot. sorry.
19:33:06 <ais523> boily: I could have stopped it
19:33:10 -!- cuttlefish has joined.
19:33:11 <ais523> that's why I opped myself
19:33:20 <Gregor> #echo Another shellbot?
19:33:21 <oonbotti> Another shellbot?
19:33:21 <FreeFull> #cat foo
19:33:25 <Gregor> #env
19:33:25 <mroman> !blsq 14 1 0rn
19:33:26 <blsqbot> {1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1
19:33:44 <FreeFull> mroman: What is that
19:33:58 <ais523> hmm, what language is !blsq anyway?
19:34:01 <FreeFull> Infinite list of random balues?
19:34:21 <boily> `? balue
19:34:27 <HackEgo> balue? ¯\(°_o)/¯
19:34:32 <mroman> I should probably add a take 100
19:34:35 <mroman> to not float irc :)
19:34:41 <mroman> !quit
19:34:41 -!- blsqbot has quit (Quit: Exiting).
19:34:46 -!- ais523 has set channel mode: -o ais523.
19:35:03 <nortti> Gregor: not shellbot, just implement some fs functions
19:35:25 -!- blsqbot has joined.
19:35:29 -!- GreyKnight has quit (Ping timeout: 248 seconds).
19:35:31 <mroman> !blsq 14 1 0rn
19:35:32 <blsqbot> {1 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1
19:35:33 <FreeFull> balue = value
19:35:45 <mroman> FreeFull: rn is Random number in range
19:36:01 <mroman> !blsq 3 14 0 10rn.+
19:36:02 <blsqbot> {6 7 7}
19:36:04 <mroman> !blsq 3 14 0 10rn.+
19:36:04 <blsqbot> {6 7 7}
19:36:08 <mroman> 14 is the seed ;)
19:36:09 <FreeFull> What's 14 here? The initial seed?
19:36:12 <FreeFull> Ah
19:36:28 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
19:36:36 <FreeFull> .+ is take?
19:36:37 -!- ais523 has joined.
19:36:49 <ais523> "interesting typo", not "ragepart"
19:36:55 <mroman> FreeFull: Yes.
19:37:03 <mroman> Hm.
19:37:10 <mroman> But now somebody might force blsqbot to produce 80 newlines
19:37:17 <mroman> then take 100 would not suffice.
19:37:19 <mroman> !quit
19:37:19 -!- blsqbot has quit (Client Quit).
19:37:38 <shachaf> @localtime ais523
19:37:39 <lambdabot> Local time for ais523 is Wed Feb 20 19:37:39 2013
19:37:47 <FreeFull> I don't think the arguments to .+ are in the right order, it'd make more sense for the number to take to be second to me
19:38:48 -!- blsqbot has joined.
19:39:00 -!- oerjan has joined.
19:39:01 <mroman> !blsq "hello\nyou"sh
19:39:01 <blsqbot> hello
19:39:14 <mroman> !blsq {1 2 3 4}4.+
19:39:14 <blsqbot> ERROR: Burlesque: (.+) Invalid arguments!
19:39:21 <mroman> !blsq 4{1 2 3 4}.+
19:39:22 <blsqbot> {1 2 3 4}
19:39:43 <FreeFull> Damn you whoever invented .+
19:39:51 <mroman> It was me :)
19:40:08 <FreeFull> mroman: Why did you put the number first in its arguments
19:40:53 <FreeFull> Makes it less composable than the swapped version
19:41:05 <mroman> yeah.
19:41:12 <FreeFull> !blsq 3 4 s
19:41:13 <blsqbot> ERROR: (line 1, column 6):
19:41:20 <FreeFull> !blsq 3 4 .s
19:41:21 <blsqbot> ERROR: Unknown command: (.s)!
19:41:30 <mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:41:32 <FreeFull> Can I have a look at the language spec or something?
19:41:33 -!- blsqbot has quit (Remote host closed the connection).
19:41:53 -!- doesthiswork has joined.
19:41:55 <mroman> hu
19:42:00 <mroman> now it crashed o_O
19:42:05 <mroman> FreeFull: http://mroman.ch/burlesque/lref.html
19:42:38 -!- blsqbot has joined.
19:42:41 <mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:42:51 <mroman> well that's interesting.
19:42:52 -!- blsqbot has quit (Remote host closed the connection).
19:42:58 <FreeFull> Should be Str a, Int b Block a, Int b
19:46:06 -!- blsqbot has joined.
19:46:09 <mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:46:19 <FreeFull> What's the code meant to do?
19:46:19 -!- blsqbot has quit (Remote host closed the connection).
19:46:30 <mroman> calculate the entropy of your nick.
19:47:24 -!- blsqbot has joined.
19:47:24 -!- blsqbot has quit (Remote host closed the connection).
19:47:36 <mroman> I have no idea
19:47:42 <mroman> ghci just terminates on that program
19:48:22 <FreeFull> No error or anything?
19:48:36 <mroman> nope
19:48:45 <FreeFull> What about ghc?
19:49:08 <mroman> #tutbot-testing
19:49:09 <mroman> 20:47 < mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:49:09 <mroman> 20:47 < blsqbot> 2.25
19:49:18 <mroman> ^- it works in #tutbot-testing
19:49:27 <mroman> This channel is cursed!
19:49:50 <FreeFull> Maybe the IRC layer is giving it something extra
19:49:51 -!- gs2bot has joined.
19:49:59 <nooodl> !gs2 48
19:50:00 <gs2bot> "Hello, world!\n"
19:50:05 <nooodl> mroman: ^ :)
19:50:12 <FreeFull> What's that? Ghostscript?
19:50:17 <nooodl> golfscript 2
19:50:20 <FreeFull> Ah
19:50:23 <FreeFull> !gs2 1
19:50:23 <gs2bot> "\n"
19:50:28 <FreeFull> !gs2 3
19:50:29 <gs2bot> "\n"
19:50:29 <shachaf> :☝)
19:50:30 <nooodl> there's a little "parser"
19:50:33 -!- blsqbot has joined.
19:50:40 <FreeFull> !gs2 4
19:50:40 <mroman> !blsq "FreeFull"F:u[vv^^{1\/?/2\/LG}m[?*++
19:50:41 <gs2bot> "\n"
19:50:41 <blsqbot> 2.25
19:50:45 <FreeFull> !gs2 4848
19:50:45 <gs2bot> "Hello, world!Hello, world!\n"
19:50:54 <nooodl> for actual ascii code, you need "". anything else is parsed as byte values
19:50:58 <nooodl> so
19:50:59 <mroman> now it works :)
19:51:01 <nooodl> !gs2 "2 2+"
19:51:02 <gs2bot> "4\n"
19:51:14 <nooodl> !gs2 32 20 32 2B
19:51:14 <gs2bot> "4\n"
19:51:18 <nooodl> ^ those are equivalent
19:51:19 <FreeFull> And what's byte 48?
19:51:27 <mroman> probably "print hello world"?
19:51:37 <nooodl> just the string value hello world, actually
19:51:46 <nooodl> which gets printed after the end of the program
19:51:56 <nooodl> you could reverse it first, though
19:51:57 <mroman> !blsq 88fC
19:51:58 <blsqbot> {2 2 2 11}
19:51:59 <nooodl> !gs2 "HR"
19:52:00 <gs2bot> "\n"
19:52:02 <nooodl> oops
19:52:04 <nooodl> !gs2 "Hr"
19:52:04 <gs2bot> "!dlrow ,olleH\n"
19:52:07 <nooodl> ^
19:52:18 <nooodl> (r is reverse)
19:52:33 <mroman> !blsq "Hello, World!")<-<-
19:52:34 <blsqbot> "!DLROw ,OLLEh"
19:53:05 <FreeFull> How do you loop?
19:53:06 <mroman> !blsq "Hello, World!"F:
19:53:07 <blsqbot> {{0.23076923076923078 'l} {0.15384615384615385 'o} {7.692307692307693e-2 'r} {7.
19:53:17 <mroman> FreeFull: loop?
19:53:22 <mroman> Burlesque has a while loop
19:53:34 <mroman> but usually you wan't an implicit loop
19:53:37 <mroman> like map, reduce, filter
19:53:43 <mroman> *want
19:53:48 -!- SirCmpwn has quit (Excess Flood).
19:53:55 <FreeFull> Well, I was thinking loop or recurse
19:53:56 <nooodl> i think burlesque is also partially based on golfscript?
19:54:19 <mroman> It's actually based on J
19:54:22 <mroman> well
19:54:28 <mroman> you see
19:54:34 <FreeFull> If it has while, then it probably is turing complete
19:54:37 <mroman> I'm too dumb to learn J
19:54:48 <mroman> so I created my own weird looking weird version of it ;)
19:54:52 <mroman> FreeFull: It is turing complete.
19:55:00 <nooodl> pfff, J is easy, just type a bunch of emoticons and #$%&.:
19:55:16 <mroman> You can translate Underload to blsq
19:55:17 <nooodl> you'll have a mandelbrot plotter in no time
19:55:22 <mroman> and recently I wrote a Brainfuck interpreter
19:55:35 <FreeFull> !blsq { } { 1 } w!
19:55:35 -!- blsqbot has quit (Remote host closed the connection).
19:55:57 <nooodl> hmm, someone give me something really easy to write in GS2
19:56:07 <nooodl> like, easier than fizzbuzz
19:56:08 <mroman> :FreeFull!~freefull@defocus/sausage-lover PRIVMSG #esoteric :!blsq { } { 1 } w!
19:56:09 <FreeFull> nooodl: infinite loop of a
19:56:11 <mroman> El resulto: *Main>
19:56:12 <mroman> see
19:56:16 <mroman> it just returns to Main
19:56:18 <mroman> no error, nothing.
19:56:27 <nooodl> that might actually crash the bot :')
19:56:27 <mroman> maybe PRIVMSG :
19:56:29 <nooodl> let's find out
19:56:30 <mroman> is invalid irc syntax?
19:56:31 <FreeFull> mroman: Would have to see the implementation
19:56:44 <mroman> i.e sending an empty string?
19:56:53 <mroman> I'm not sure whether it expects at least a space after : ?
19:57:00 <mroman> lemme try
19:57:18 <FreeFull> mroman: You'd get an error from the server at least if you sent something wrong
19:57:54 <mroman> hm. right.
19:58:07 -!- blsqbot has joined.
19:58:11 <mroman> well. try again.
19:58:24 <FreeFull> !blsq { }
19:58:25 <blsqbot> ~ {}
19:58:25 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
19:58:30 <FreeFull> !blsq { } { 1 }
19:58:31 <blsqbot> ~ {1}
19:58:31 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
19:58:34 <FreeFull> !blsq { } { 1 } w!
19:58:34 -!- blsqbot has quit (Remote host closed the connection).
19:58:38 <Phantom_Hoover> hahaha
19:58:38 <FreeFull> Maybe it's the !
19:58:40 -!- SirCmpwn has joined.
19:58:54 <Bike> good bot
19:59:34 <nooodl> i doubt this is going to work --
19:59:35 <nooodl> !gs2 "{°aP1}D"
19:59:53 <nooodl> !gs2 "2 2+"
19:59:54 <gs2bot> "4\n"
20:00:02 <nooodl> oh it just didn't output anything
20:00:06 <nooodl> wait
20:00:17 <nooodl> !gs2 "{" B0 "aP1}D"
20:00:26 -!- blsqbot has joined.
20:00:28 <mroman> !blsq { } { 1 } w!
20:00:29 -!- blsqbot has quit (Remote host closed the connection).
20:00:40 <mroman> ok.
20:00:46 <mroman> it crashes before writing to the network handle
20:00:48 <nooodl> it's running that thread forever
20:00:53 <nooodl> and never returns any output
20:00:56 <nooodl> whoops.
20:01:08 <FreeFull> I want to try something
20:01:48 -!- blsqbot has joined.
20:01:49 <nooodl> this bot was hacked together in 10 minutes or so...
20:01:49 <mroman> let me try :trace main
20:01:53 <mroman> !blsq { } { 1 } w!
20:01:53 -!- blsqbot has quit (Remote host closed the connection).
20:02:03 <FreeFull> mroman: I wanted to try !blsq !
20:02:08 <mroman> oh.
20:02:20 -!- blsqbot has joined.
20:02:22 <mroman> go on
20:02:24 <FreeFull> !blsq !
20:02:24 <blsqbot> ~ ERROR: (line 1, column 2):
20:02:25 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:02:28 <FreeFull> !blsq w!
20:02:28 <blsqbot> ~ ERROR: Burlesque: (w!) Invalid arguments!
20:02:28 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:02:32 <FreeFull> I see
20:02:41 <boily> hm. I really need to update my bot.
20:02:42 <mroman> !blsq 1R@<-<>
20:02:42 -!- blsqbot has quit (Remote host closed the connection).
20:02:45 <FreeFull> !blsq { } { 0 } w!
20:02:55 <mroman> It apparently crashes on timout.
20:03:17 <FreeFull> So timeout is reached, and then it crashes rather than doing the right thing?
20:03:27 <mroman> :D
20:03:31 <mroman> I'm such a dumbass
20:03:37 <mroman> head
20:03:41 <mroman> > head ""
20:03:42 <lambdabot> *Exception: Prelude.head: empty list
20:03:46 <mroman> Yeah.
20:03:50 <FreeFull> Lol
20:03:55 <mroman> Damn you unsafeHead!
20:04:10 <mroman> > ("~ "++) . take 80 . head . lines $ ""
20:04:12 <lambdabot> "~ *Exception: Prelude.head: empty list
20:04:28 <mroman> how uncool.
20:04:36 <mroman> :t head'
20:04:38 <lambdabot> Not in scope: head'
20:04:38 <lambdabot> Perhaps you meant one of these:
20:04:38 <lambdabot> `head' (imported from Data.List),
20:05:08 <boily> ~eval head mempty
20:05:08 <FreeFull> You want something that for [] returns [], and for [[a]] returns [a], right?
20:05:09 <cuttlefish> Error (1): No instance for (GHC.Show.Show a0)
20:05:09 <cuttlefish> arising from a use of `M8322072285244073253.show_M8322072285244073253'
20:05:09 <cuttlefish> The type variable `a0' is ambiguous
20:05:09 <cuttlefish> Possible fix: add a type signature that fixes these type variable(s)
20:05:09 <cuttlefish> Note: there are several potential instances:
20:05:10 <cuttlefish> instance GHC.Show.Show GHC.Types.Double
20:05:10 <cuttlefish> -- Defined in `base:GHC.Float'
20:05:11 <cuttlefish> instance GHC.Show.Show GHC.Types.Float
20:05:11 <cuttlefish> -- Defined in `base:GHC.Float'
20:05:12 <mroman> > ("~ "++) . take 80 . head . lines . (++"WHAT") $ ""
20:05:12 <cuttlefish> instance (GHC.Real.Integral a, GHC.Show.Show a) =>
20:05:12 <cuttlefish> GHC.Show.Show (GHC.Real.Ratio a)
20:05:13 <cuttlefish> -- Defined in `base:GHC.Real'
20:05:13 <lambdabot> Terminated
20:05:25 <mroman> > ("~ "++) . take 80 . head . lines . (++"WHAT") $ ""
20:05:25 <boily> yeah. really, really need to update my bot.
20:05:26 <lambdabot> "~ WHAT"
20:05:35 <mroman> > ("~ "++) . take 80 . head . lines . (++" ") $ ""
20:05:37 <lambdabot> "~ "
20:05:39 <mroman> ah
20:05:42 <mroman> dummy space will do
20:05:44 <FreeFull> boily: bind . take 1 I think this will work
20:06:14 <FreeFull> Wait, not bind
20:06:15 <FreeFull> join
20:06:26 -!- blsqbot has joined.
20:06:33 <FreeFull> :t join . take 1
20:06:34 <lambdabot> [[a]] -> [a]
20:06:42 <mroman> !blsq { } { 1 } w!
20:06:43 <blsqbot> ~
20:06:43 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:06:46 <mroman> hehe
20:06:48 <mroman> perfect
20:06:49 <boily> FreeFull: I'm looking at System.Plugins' docs. planning to rewrite just about everything, now that just about every lib I use is outdated, and I can't SSL my bot.
20:07:05 <mroman> !blsq {{1 2 3}{4 5 6}}tp
20:07:06 <blsqbot> ~ {{1 4} {2 5} {3 6}}
20:07:06 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:08 -!- augur has quit (Read error: Connection reset by peer).
20:07:12 <mroman> !blsq {{1 2 3}{4 5 6}}tp)++
20:07:13 <blsqbot> ~ {5 7 9}
20:07:13 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:24 <Bike> ~metar
20:07:24 <cuttlefish> --- ~metar station
20:07:25 <FreeFull> boily: I meant to say that to mroman, I don't know why I said it to you
20:07:28 <mroman> !blsq {{1 2 3}{4 5 6}}tp)++2?^++<-
20:07:28 <blsqbot> ~ 551
20:07:29 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:33 <mroman> oh
20:07:33 <Bike> ~yi
20:07:33 <cuttlefish> Your divination: "Enveloping" to "Stripping"
20:07:35 -!- augur has joined.
20:07:37 <mroman> sry
20:07:40 <mroman> !quit
20:07:40 -!- blsqbot has quit (Client Quit).
20:07:41 <Bike> Whoa there, cuttlefish.
20:07:49 <mroman> ~is already taken by someone :)
20:07:50 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
20:07:50 <FreeFull> mroman: So are you using the space workaround or join . take 1
20:08:03 <boily> FreeFull: it may have applied. I still have much haskell to learn, and who knows, perhaps a bind or a join is the right thing to do.
20:08:15 <boily> mroman: ~ is my cuttlefish's prefix.
20:08:50 <boily> Bike: I'm not responsible for that, only your subconscious.
20:09:18 -!- blsqbot has joined.
20:09:29 <mroman> !blsq "boily: ic"sh
20:09:30 <blsqbot> boily: ic
20:09:36 <FreeFull> There should be an official bot list
20:09:38 <mroman> !blsq "~ huhu"sh
20:09:39 <blsqbot> ~ huhu
20:09:43 <FreeFull> And all bots are meant to use that list to ignore each other
20:09:49 <Bike> boily: is it i ching or what
20:10:09 <mroman> my bot adds a safety space before printing stuff
20:10:13 <boily> Bike: it is i ching indeed.
20:10:16 <mroman> that's the usual convention on other channels.
20:10:22 <Bike> cool
20:10:35 <Bike> mroman: i should write a bot with space as the command character
20:10:44 <FreeFull> !blsq 3
20:10:44 <blsqbot> 3
20:10:56 <mroman> And I would call you idiot then
20:11:12 <Bike> :(
20:11:15 <FreeFull> I once wrote an useless bot in s-lang
20:11:18 <mroman> !blsq {)}
20:11:18 <blsqbot> {)}
20:11:19 <boily> Bike: that's more evil thant ørjan and/or elliott!
20:11:27 <FreeFull> S-lang's sockets are nicer than C's
20:11:31 <boily> (that being implementing a space-bot.)
20:11:51 <mroman> !blsq }:)
20:11:51 <blsqbot>
20:12:05 <mroman> I love how smilies are valid programs.
20:12:10 <mroman> !blsq :)
20:12:10 <blsqbot> ERROR: Unknown command: (:))!
20:12:15 <FreeFull> !blsq (:
20:12:15 <blsqbot> ERROR: (line 1, column 3):
20:12:21 <mroman> not all of them
20:13:46 <mroman> !blsq {12 15 14 16 14 25}{16 16 16 16 16 16}ct5 0.95cq.<{"The die is ok!""The die is probably not ok!"}chsh
20:13:46 <blsqbot> The die is ok!
20:14:05 <mroman> I think it starts turning unfair on 29 sixes
20:14:12 <mroman> !blsq {12 15 14 16 14 29}{16 16 16 16 16 16}ct5 0.95cq.<{"The die is ok!""The die is probably not ok!"}chsh
20:14:12 <blsqbot> The die is probably not ok!
20:14:15 <mroman> yeah.
20:14:25 -!- gs2bot has quit (Read error: Connection reset by peer).
20:15:40 <mroman> !blsq {81 22 100 201 227 0 87 159 74 100 64 32}{2B!8'0P[}\m6co{L[6==}f[{2B!32.+L[}\m
20:15:41 <blsqbot> "419DR>, 5Y]*9$ @"
20:15:55 <mroman> Thanks. That's so sweet of you to say.
20:16:50 <mroman> my bf interpreter is probably too long.
20:17:12 <mroman> !bf_txtgen ABC
20:17:17 <EgoBot> ​39 ++++++++[>++++++++>+>><<<<-]>+.+.+.>++. [72]
20:17:17 -!- blsqbot has quit (Remote host closed the connection).
20:17:17 <mroman> `bf_txtgen ABC
20:17:19 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: bf_txtgen: not found
20:17:48 <mroman> EgoBot killed my bot!
20:18:15 <Gregor> lul
20:18:43 <mroman> it sent me a privmsg
20:18:54 <mroman> :EgoBot!codu@codu.org PRIVMSG #esoteric :â*Main>
20:20:12 -!- blsqbot has joined.
20:20:31 <mroman> !bf_txtgen ABC
20:20:33 <EgoBot> ​39 +++++[>+++++++++++++>++>><<<<-]>.+.+.>. [41]
20:20:33 -!- blsqbot has quit (Remote host closed the connection).
20:20:42 <mroman> lulz.
20:21:04 <mroman> hPutChar :D
20:22:51 -!- blsqbot has joined.
20:22:55 <mroman> !bf_txtgen ABC
20:22:56 <EgoBot> ​39 +++++++++[>+++++++>+>><<<<-]>++.+.+.>+. [183]
20:22:56 -!- blsqbot has quit (Remote host closed the connection).
20:23:10 <mroman> yeah. It just can't print the darn thing to stdout
20:23:23 <oerjan> <mroman> dummy space will do <-- takeWhile (/= '\n') instead of head . lines perhaps?
20:24:36 -!- blsqbot has joined.
20:24:42 <mroman> !bf_txtgen ABC
20:24:44 <EgoBot> ​39 ++++++++[>++++++++>+>><<<<-]>+.+.+.>++. [152]
20:24:48 <mroman> hehe
20:24:49 <FreeFull> oerjan: I suggested join . take 1 . lines
20:24:56 <mroman> !blsq "I'm still here"sh
20:24:57 <blsqbot> I'm still here
20:25:07 <mroman> > join. take 1 . lines $ ""
20:25:10 <lambdabot> ""
20:25:16 <mroman> > join. take 1 . lines $ "Muh\nmuh"
20:25:18 <lambdabot> "Muh"
20:25:24 <mroman> neat.
20:25:27 <FreeFull> takeWhile (/= '\n') would work too
20:25:31 <FreeFull> And is probably more obvious
20:25:38 <mroman> yep
20:26:09 <FreeFull> takeWhile (const True) ""
20:26:11 <FreeFull> > takeWhile (const True) ""
20:26:13 <lambdabot> ""
20:26:37 <FreeFull> Yeah, should work
20:27:11 <boily> FreeFull: you heretic! how *dare* you praise obviousness in this channel!
20:27:18 <mroman> !blsq "Muh\nmuh"{"\n"[-!=}tw
20:27:18 <blsqbot> ERROR: Burlesque: (tw) Invalid arguments!
20:27:22 <mroman> hm.
20:27:37 <FreeFull> boily: He's writing it in Haskell
20:27:51 <mroman> ah.
20:27:57 <FreeFull> If it was some super esoteric language, then sure, I'd encourage obscurity =P
20:27:59 <mroman> reversed arguments.
20:28:14 <mroman> !blsq {"\n"[-!=}"Muh\nmuh"tw
20:28:14 <blsqbot> "Muh\nmuh"
20:28:16 <boily> you got a point here.
20:28:42 <mroman> !blsq "\n"[-**
20:28:42 <blsqbot> ERROR: Burlesque: (**) Invalid arguments!
20:28:48 <mroman> !blsq "\n"-]**
20:28:48 <blsqbot> 10
20:28:54 <mroman> !blsq {"\n"-]!=}"Muh\nmuh"tw
20:28:55 <blsqbot> "Muh"
20:29:46 <mroman> Sometimes arguments are reversed just to punish people
20:30:57 <mroman> !blsq "http://esolangs.org""http://"?/
20:30:57 <blsqbot> "esolangs.org"
20:31:28 <mroman> !blsq "1 500000000r@2?^++"
20:31:28 <blsqbot> "1 500000000r@2?^++"
20:31:34 <mroman> !blsq "1 500000000r@2?^++"e!
20:31:35 <blsqbot> ERROR: Burlesque: (e!) Invalid arguments!
20:31:41 <mroman> how dare you
20:31:45 <mroman> !blsq "1 500000000r@2?^++"to
20:31:45 <blsqbot> "Str"
20:31:50 <mroman> !blsq "1 500000000r@2?^++"pe
20:31:51 <blsqbot>
20:31:58 <mroman> !blsq "1 50r@2?^++"pe
20:31:58 <blsqbot> 42925
20:32:08 <FreeFull> !blsq 3 3 .*
20:32:08 <blsqbot> 9
20:32:14 <FreeFull> !blsq 3 3 .^
20:32:15 <blsqbot> ERROR: Unknown command: (.^)!
20:32:19 <FreeFull> !blsq 3 3 .**
20:32:20 <blsqbot> ERROR: (line 1, column 8):
20:32:20 <oerjan> > ([] :: [String]) ^. _head
20:32:24 <lambdabot> ""
20:32:25 <mroman> !blsq 3 3 **
20:32:25 <blsqbot> 27
20:32:29 <FreeFull> Ah
20:32:35 <oerjan> > (["test", "ho"] :: [String]) ^. _head
20:32:38 <mroman> or ?^
20:32:38 <lambdabot> "test"
20:32:42 <mroman> !blsq 3 3 ?^
20:32:43 <blsqbot> 27
20:32:46 <mroman> !blsq 3 3.0 ?^
20:32:47 <blsqbot> 27.0
20:32:59 <oerjan> boily: ok is _that_ obscure enough?
20:33:11 <mroman> !blsq 5 3mo.+
20:33:12 <blsqbot> {3 6 9 12 15}
20:33:13 <boily> oerjan: it is.
20:35:25 <mroman> !blsq "rrrrrlllleee"gw
20:35:26 <blsqbot> {{5 'r} {4 'l} {3 'e}}
20:35:49 <mroman> !blsq "rrrrrlllleee"gw)?+
20:35:49 <blsqbot> {ERROR: Burlesque: (.+) Invalid arguments! {5 'r} ERROR: Burlesque: (.+) Invalid
20:35:56 <mroman> hm.
20:35:57 <mroman> yeah.
20:36:13 <mroman> !blsq "rrrrrlllleee"gw{Sh?+}\m
20:36:14 <blsqbot> {ERROR: Burlesque: (_+) Invalid arguments!}
20:36:19 <mroman> !blsq "rrrrrlllleee"gw{Sh?+}m[
20:36:19 <blsqbot> {ERROR: Burlesque: (.+) Invalid arguments! "[5, r]" ERROR: Burlesque: (.+) Inval
20:37:51 <mroman> !blsq "rrrrrlllleee"gw{^pSh?+}\m
20:37:52 <blsqbot> "5r4l3e"
20:38:21 <mroman> !blsq "rrrrrlllleee"gn
20:38:22 <blsqbot> {'r 'l 'e}
20:38:27 <mroman> !blsq "rrrrrlllleee"gn\[sh
20:38:27 <blsqbot> rle
20:39:50 <mroman> blsqbot please do quit
20:39:50 -!- blsqbot has quit (Quit: Exiting).
20:42:17 <Sgeo> Fuck thi computer
20:44:35 <FreeFull> Hot computer sex
20:48:02 <nooodl> monqy: do you minecraft
20:48:13 <monqy> no
20:48:23 <monqy> (hi)
20:48:25 <nooodl> aw
20:48:25 <nooodl> hi
20:48:33 <Sgeo> I do
20:48:39 <Sgeo> Except computer is a pita
20:48:40 <monqy> i uh gosh what do i do
20:48:46 -!- Regis__ has changed nick to GOMADWarrior.
20:49:32 <Bike> gonad warrior
20:50:00 <FreeFull> gonads are the best punctional fondlegramming squishcture
20:50:05 <monqy> maybe sometime i should watch that bad monads talk
20:50:15 <Sgeo> bad monads talk?
20:50:17 <monqy> the one by the bad javascript guy
20:51:08 <boily> `learn gonads are the best punctional fondlegramming squishcture.
20:51:12 <HackEgo> I knew that.
20:51:13 <FreeFull> http://www.youtube.com/watch?v=dkZFtimgAcM This one
20:51:27 <Bike> That doesn't sound like much fun to watch.
20:51:53 <monqy> on second thought, i dont want to watch that at all ever
20:52:18 -!- carado has quit (Ping timeout: 264 seconds).
20:53:08 <FreeFull> The top youtube result for monads
20:53:16 <monqy> :(
20:56:01 -!- carado has joined.
20:57:25 -!- Nisstyre-laptop has joined.
21:05:17 -!- Taneb has joined.
21:06:41 <Taneb> ais523, I'm sorry, but Birmingham did not feel for me.
21:07:01 <ais523> Taneb: hmm
21:07:09 <shachaf> Oh boy, that video has YouTube comments now?
21:07:27 <Taneb> That is, I did not feel that the University of Birmingham is for me
21:07:28 <ais523> incompetence? malice? the shadow of a previously industrial age that is now collapsing in ruins because it's no longer economically viable?
21:08:24 <ais523> ah, OK
21:08:25 <ais523> that makes sense
21:08:32 <ais523> I don't know much about what the maths department is like
21:08:44 <ais523> apart from it has a weirdly quirky building and I once sat an exam on the bridge
21:09:13 <shachaf> Birmingham, Alabama, right?
21:09:18 <ais523> shachaf: UK
21:09:19 <shachaf> "the true birmingham"
21:09:29 <ais523> the /original/ Birmingham
21:10:14 <hagb4rd|lounge> they have predicted and proven their own nemesis. and so now they go for it
21:10:21 -!- hagb4rd|lounge has changed nick to hagb4rd.
21:10:27 <hagb4rd> consquently
21:10:39 <ais523> but yeah, the way universities work, different universes will be better for different people
21:10:50 <hagb4rd> somehow like lemmings
21:11:10 <shachaf> IN AN ALTERNATE UNIVERSITY: the same universes are better for the same people
21:11:40 <hagb4rd> `addquote <shachaf>IN AN ALTERNATE UNIVERSITY: the same universes are better for the same people
21:11:41 <nooodl> thanks for making a stupid "universe" joke so i don't have to, shachaf
21:11:44 <HackEgo> 965) <shachaf>IN AN ALTERNATE UNIVERSITY: the same universes are better for the same people
21:11:48 <shachaf> `revert
21:11:51 <HackEgo> Done.
21:11:59 <shachaf> nooodl: It's what I do.
21:12:34 <ais523> yeah, that quote was awful
21:12:40 <shachaf> It was.
21:12:49 <shachaf> Then again, so is hagb4rd.
21:12:53 <boily> say, has anywhere in the quotes' history have we reached number 1000?
21:13:07 <hagb4rd> i liked it :(
21:13:16 <ais523> shachaf: no random insulting of people, please
21:13:30 <ais523> like, if you have a good reason, you can talk it through
21:13:37 <ais523> but random insults just make the heartfelt ones cheaper, in a way
21:14:19 <shachaf> `pastelogs hagb4rd
21:14:22 <nooodl> how did that automatically get quoted
21:14:31 <ais523> nooodl: it didn't, hagb4rd added it
21:14:34 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12727
21:14:35 <hagb4rd> i have been isulted?
21:14:39 <nooodl> oh i'm blind
21:14:45 * hagb4rd starts crying
21:15:03 <ais523> if we wanted someone to randomly repeat past lines from the log, we'd bring back optbot
21:15:10 * Sgeo insults everyone who ever insults
21:15:56 <ais523> (optbot was awesome, btw)
21:16:53 <hagb4rd> what are you talking about.. i just have seen beauty where you have not
21:16:56 <Phantom_Hoover> no
21:16:58 <hagb4rd> maybee
21:16:59 <Phantom_Hoover> optbot was bad
21:17:20 <Sgeo> I don't remember optbot.
21:17:31 <boily> was it badder than cuttlefish?
21:17:33 <ais523> it was ages ago
21:17:37 <Phantom_Hoover> <ais523> but random insults just make the heartfelt ones cheaper, in a way
21:17:39 <ais523> it basically just randomly repeated past lines from the log
21:17:41 <Sgeo> ais523, I've been here for ages :<
21:17:42 <Phantom_Hoover> h4gbard is awful
21:17:44 <ais523> and changed the topic occasionally
21:17:47 <ais523> Sgeo: ageser
21:17:48 <Phantom_Hoover> and that's from the heart
21:18:23 <Sgeo> Early hagb4rd reminds me of itidus. No offense to either.
21:18:48 <kmc> keep running the test suite until it passes
21:18:51 * boily happily smacks Phantom_Hoover with a miniature, porcelain cow that wasn't made in china but in a nearby country by a slightly underpaid local artisan
21:18:52 <ais523> itidus is awesome, at least
21:19:13 <kmc> artisinal cows that celebrate craftsmanship
21:19:22 <Phantom_Hoover> Sgeo, i think hagb4rd may have brought iti here
21:19:23 <shachaf> `pastelogs perdito
21:19:29 <Phantom_Hoover> you'd have to check the logs
21:19:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.22247
21:20:55 <Sgeo> How does "thumb mature" scare off the other kind of esotericer?
21:21:11 <boily> ~duck thumb mature
21:21:12 <cuttlefish> --- No relevant information
21:21:37 <hagb4rd> okay
21:21:40 -!- DHeadshot has joined.
21:21:44 <Bike> the ways of elliott are mysterious, sgeo.
21:21:44 <hagb4rd> take care
21:21:48 <hagb4rd> i'm out
21:21:53 -!- hagb4rd has left.
21:22:16 <boily> `pastelogs itidus
21:22:29 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.2494
21:22:56 <oerjan> #esoteric rage part #184
21:22:56 <oonbotti> Nothing here
21:23:21 <ais523> oerjan: you're counting? :)
21:23:28 <oerjan> MAYBE
21:23:28 <ais523> actually, rage parts sound quite hard to automatically count
21:23:37 <oerjan> (no)
21:24:29 <oerjan> what's with wikipedia's eagle theme
21:25:37 <Sgeo> o.O at hagb4rd=perdito
21:26:55 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
21:26:59 -!- ais523 has joined.
21:27:08 <ais523> accidental ragepart count today: 2
21:27:13 * oerjan wonders what ais523 is typoing
21:27:31 <ais523> oerjan: that was attempting to close another tab, succeeding, and repeating the command by mistake
21:27:38 <oerjan> aha
21:27:49 <ais523> the first time I tried to close a tab in Firefox, pressed control-q by mistake, then immediately corrected it to control-w
21:27:59 <ais523> and the correction hit Konversation because Firefox had already closed at that point
21:36:45 <doesthiswork> I'm no longer a fan of spelling c-words with a k after the Candy Cake Company tried it
21:37:16 <Bike> is "kake" a slur or something
21:37:47 <boily> someday we'll behold the merger between CDE and KDE. all new projects will begin with a letter halfway between C and K.
21:38:04 <boily> (unicode probably has something like that somewhere. I wonder in which block...)
21:38:47 <FreeFull> candy cace
21:39:11 <FreeFull> ais523: I have ctrl+q disabled in my firefox
21:39:30 <FreeFull> Because I sometimes hit it instead of ctrl+w
21:39:34 <ais523> boily: <?
21:39:45 <FreeFull> I use http://kb.mozillazine.org/Keyconfig_extension to do that
21:40:01 <kmc> ku klux kake kompany?
21:42:17 -!- WeThePeople has quit (Quit: Leaving).
21:42:42 <boily> ais523: the glyph is good.
21:45:05 -!- augur has quit (Remote host closed the connection).
21:45:38 -!- augur has joined.
21:47:51 <boily> ais523: but then, I feel it's not C-ish enough. what about a curly ≺?
21:48:19 <ais523> boily: well < is closer to C than your \leq is
21:48:21 -!- impomatic has joined.
21:48:23 <ais523> err, not \leq
21:48:26 <ais523> \prec
21:48:34 <ais523> \leq is ≤
21:49:01 <boily> I wanted to emulate the roundity of C, even if the curvature is opposite to the desired effect.
21:50:24 -!- augur has quit (Ping timeout: 276 seconds).
21:50:28 -!- augur_ has joined.
21:51:13 -!- TeruFSX2 has joined.
21:51:13 -!- TeruFSX has joined.
21:57:38 -!- augur_ has quit (Remote host closed the connection).
21:58:12 -!- augur has joined.
21:59:18 -!- SirCmpwn has quit (Ping timeout: 244 seconds).
22:02:26 -!- augur has quit (Ping timeout: 255 seconds).
22:02:40 -!- TeruFSX2 has quit (Quit: Leaving).
22:02:40 -!- SirCmpwn has joined.
22:02:58 -!- azaq23 has quit (Quit: Leaving.).
22:06:54 -!- boily has quit (Quit: Poulet!).
22:06:59 -!- cuttlefish has quit (Remote host closed the connection).
22:08:29 <ais523> bleh, I can't read Cyrillic
22:08:38 <ais523> at least being able to pronounce it would help
22:12:17 <oerjan> Да
22:17:25 <ais523> actually I suspect this in French but dubbed into Russian
22:17:29 <ais523> but it doesn't make it any easier to follow
22:20:53 -!- DHeadshot has quit (Ping timeout: 255 seconds).
22:21:51 <ais523> oh good, some text on screen, and it's /definitely/ in French; this clears it up
22:21:56 <ais523> apparently they didn't dub text, just voice
22:25:59 <oerjan> трэс бен
22:26:05 <kmc> hacked by french
22:26:49 <ais523> kmc: so the theory is that it was originally Russian
22:26:55 <ais523> and just the /text/ was changed to French?
22:27:25 <oerjan> hint: look if the lips match the words
22:27:39 <quintopia> !bfjoust brachiation >->(-)*5>(+)*5>>>(>[<<<(+)*7<<(+[<{}>++++[<(-)*50(>)*7(>[-[-[-[>>>(+)*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
22:27:41 <ais523> but they're in Russian
22:27:51 <EgoBot> ​Score for quintopia_brachiation: 0.0
22:27:55 <quintopia> what
22:28:06 <oerjan> sorry, *match the sounds
22:28:08 <quintopia> where's the mismatch
22:28:36 <oerjan> quintopia: i recommend an editor with bracket matching hth
22:28:47 <ais523> yeah, they don't match at all
22:28:49 <quintopia> oerjan: it doesn't usually, but thanks
22:28:59 -!- WeThePeople has joined.
22:29:13 <olsner> oerjan: does that match the brackets with the words or the sounds?
22:29:19 <quintopia> it should be identical to the last one i submitted yesterday, except with a few more characters shaved
22:29:44 <oerjan> the ) before the last *22 doesn't match anything
22:30:02 <ais523> olsner: you match brackets to pauses
22:30:08 <ais523> they're negative sapace
22:30:10 <ais523> *space
22:30:21 <ais523> hmm, can that posibly be used as an esolang idea?
22:30:37 <olsner> probably
22:30:38 <oerjan> and () and [] don't nest
22:30:40 -!- augur has joined.
22:30:52 <quintopia> oh the one i submitted yesterday was broken too
22:30:54 <kmc> i'm told that on PA-RISC, branch delay slots can have branches in them
22:31:08 <kmc> you run one instruction from the target of the first branch, and then control continues at the target of the second
22:31:40 <olsner> does the second branch also have a delay slot?
22:31:49 <quintopia> !bfjoust brachiation >->(-)*5>(+)*5>>>(>[<<<(+)*7<<(+[<{}>++++[<(-)*50(>)*7(>[-[-[-[>>>((+)*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
22:31:52 <EgoBot> ​Score for quintopia_brachiation: 38.4
22:32:07 <quintopia> wonders what fixing a bug can do
22:32:30 * oerjan belatedly swats olsner -----###
22:32:55 <olsner> oerjan: why must you swat me so?
22:33:21 <oerjan> <olsner> oerjan: does that match the brackets with the words or the sounds?
22:33:29 <oerjan> therefore
22:34:31 <ais523> btw, something I learnt in Canada: it's surprisingly hard for me to understand something spoken in English if it's accompanied by French subtitles
22:35:20 -!- DHeadshot has joined.
22:35:28 <oerjan> quel horreur
22:36:11 <olsner> you've been at Canada? did it exist?
22:36:30 <ais523> on the other hand, I've do really well at Stroop tests…
22:36:37 <ais523> olsner: I think at least Ottawa exists
22:36:47 <ais523> it's quite hard to get firm evidence for the rest of it from inside Ottawa
22:37:09 <olsner> good news for Ottawa
22:37:35 <ais523> I guess it's theoretically possible that Ottawa, despite clearly existing, is not inside Canada
22:38:09 <olsner> pretty sure it's in america ... mexico perhaps?
22:38:35 <Taneb> I am fairly sure Montana exists, if it is any help
22:40:13 -!- ais523 has quit (Remote host closed the connection).
22:40:33 <oerjan> it stands to reason that if you wanted to fake a country you'd fake a capital first
22:41:08 <oerjan> also, i think i've confirmed before that canada existed back in 1995 or so
22:41:09 -!- ais523 has joined.
22:41:33 <ais523> X crashed, interface looks subtly different after it restarted
22:41:37 <ais523> theory: GPU crash
22:41:38 <oerjan> <oerjan> it stands to reason that if you wanted to fake a country you'd fake a capital first
22:41:42 <oerjan> <oerjan> also, i think i've confirmed before that canada existed back in 1995 or so
22:43:13 <oerjan> also the main opponent at my dissertation was a professor in ottawa.
22:43:28 <ais523> hmm, there is now a file called intel_gpu_abrt.tar in my home folder, except it's owned by root and dated october 17
22:43:35 <ais523> oerjan: you have competitive dissertations?
22:43:37 <oerjan> although i've not personally been in that city
22:44:01 <ais523> and compiz is working harder than usual
22:44:23 <oerjan> i think that may have been the wrong word
22:44:53 <ais523> [ 16530.600] (EE) intel(0): Detected a hung GPU, disabling acceleration.
22:45:03 <ais523> GPU crash it is
22:45:26 <ais523> what crashed /X/ is apparently that I pressed control-alt-F1 and it didn't switch
22:45:33 <ais523> and if that happens, it exits as a failsafe
22:46:46 -!- GreyKnight has quit (Quit: zzz for real).
22:47:19 <oerjan> ok i think i actually meant "defense"
22:48:16 <Taneb> Oooh, on that note!
22:48:24 <Taneb> My new graphics card arrived
22:48:33 <Taneb> I need to go to the post office tomorrow and pick it up
22:49:01 <quintopia> !bfjoust brachiation >->(-)*5>(+)*5>>>(>[<<<(+)*7<<(+[<{}>++++[<(-)*50(>)*7(>[-[-[-[>>>((+)*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*9([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3(>-[(-)*50(>)*7(>[(-)*9([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7(>[(-)*9([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
22:49:04 <EgoBot> ​Score for quintopia_brachiation: 33.7
22:49:07 <quintopia> !bfjoust brachiation >->(-)*5>(+)*5>>>(>[<<<(+)*7<<(+[<{}>++++[<(-)*50(>)*7(>[-[-[-[>>>((+)*100[+]>)*5]]]])*18](-)*50<(-)*50<(-)*10>>>(-)*5<(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](+)*50)*3(>-[(-)*50(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*27](-)*50)*2(>)*7(>[(-)*5([+{[(+)*25[-]]}[+]])%10[-]][+][-])*22])%28]++)*22>(-)*115[-][+][-]
22:49:09 <EgoBot> ​Score for quintopia_brachiation: 38.4
22:49:14 <Taneb> And then finally the Chinese Fake Graphics Card Fiasco will finally be over
22:49:15 <oerjan> ah maybe there's some kind of cosmic balance here: at any given time, one #esoteric regular must have a broken graphics card
22:49:46 <Taneb> ais523, if what oerjan suggests is true, I am very, very sorry
22:49:59 <quintopia> if only there were some way to drop in an ifzero in bf
22:50:59 <quintopia> i know that finding a +9 on the tape means it's probably safe to jump 3 to the right, but i can't exploit it without ballooning the program length
22:51:02 <oerjan> none sufficiently atomic for bfjoust, i suspect
22:51:27 <ais523> quintopia: is this some sort of decoy setup detection? :)
22:51:52 <quintopia> basically. brachiation leaves a +9 three behind where it poked
22:52:15 <ais523> quintopia: oh I see
22:52:29 <ais523> so it's only confused if the opponent tears down that +9 and sets another +9 nearer
22:52:46 <FreeFull> quintopia: I wonder if an ifzero would be possible
22:52:50 <FreeFull> Should be somehow
22:53:05 <ais523> FreeFull: it's easy, you just have to duplicate it once for each set of nested brackets you're inside
22:53:07 <quintopia> ais523: well, that's the only way to force it to suicide, but it's improbable enough that it would be worth using if it were possible
22:53:11 <ais523> if you want to do it in one cycle
22:53:18 <ais523> quintopia: yeah
22:53:44 <ais523> you're good at writing programs that have theoretical weaknesses but would require a stupidly tuned-to-that-program enemy to exploit them
22:53:55 <FreeFull> !bfjoust nothing
22:53:55 <EgoBot> ​Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:54:00 <FreeFull> !bfjoust nothing
22:54:01 <EgoBot> ​Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:54:04 <quintopia> put a dot
22:54:09 <FreeFull> !bfjoust nothing ""
22:54:11 <EgoBot> ​Score for FreeFull_nothing: 3.8
22:54:16 <FreeFull> Heh
22:54:38 <ais523> quintopia: btw, if you want some fun, watch waterfall3 versus omnipotence
22:54:42 -!- willowsbrook has joined.
22:55:05 <oerjan> `welcome willowsbrook
22:55:07 <HackEgo> willowsbrook: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:55:09 <ais523> probably the only time ever that a previously hill-topping program falls off its /own/ end of the tape
22:55:25 <quintopia> ais523: link me a length and polarity
22:55:34 <ais523> quintopia: 25 sieve, IIRC
22:55:44 <ais523> haven't done it for a while, and can't do anything CPU-intensive right now
22:55:59 <ais523> I'm more likely to have the polarity wrong than the tape
22:56:05 <quintopia> the nop program beats 5 others
22:56:14 <quintopia> but beating a suicide program doesn't count
22:56:20 <quintopia> so four
22:56:54 <ais523> quintopia: all with "off enemy end", I guess?
22:57:31 <quintopia> ais523: probably. although who knows what happens with olsner_kuskelar_a_clatsop_man
22:57:46 <ais523> indeed, that program makes no sense
22:57:47 <quintopia> man i wish gregor would install the fixed point scoring
22:57:53 <quintopia> so it can die
22:57:54 <ais523> I generally don't bother trying to beat it
22:58:04 <ais523> and just rely on fate
22:58:12 -!- willowsbrook has quit (Quit: Page closed).
22:58:33 <oerjan> quintopia: you've finished it and Gregor is refusing to install it?
22:58:39 -!- ais523 has quit.
22:58:55 <quintopia> ah, yeah kuskelar falls off enemy's end as well
22:59:06 <quintopia> oerjan: i gave it to him some six months ago
22:59:16 <oerjan> wat.
22:59:23 * oerjan swats Gregor -----###
23:02:30 -!- ais523 has joined.
23:02:54 <ais523> sorry, CPU
23:03:02 <ais523> the GPU is busy doing its job again, you don't have to take over any more
23:03:11 <quintopia> ais523: kuskelar falls off the enemy's end also :)
23:03:24 <ais523> quintopia: well it would be either that, or zero its own flag
23:03:41 <quintopia> or fall off its own end
23:03:52 <ais523> (that seems implausible
23:04:10 <ais523> )
23:04:24 <ais523> the ( was a typo but I couldn't leave it unmatched )
23:04:31 <quintopia> true
23:05:00 <quintopia> the only < in the program is immediately followed and preceded by a >
23:05:16 <ais523> another hilarious matchup is omnipotence versus anticipation2
23:05:26 <oerjan> [(]([)
23:05:40 * oerjan whistles innocently
23:05:56 <ais523> I'm not even entirely sure how it happens, but normally anticipation zeroes its own flag, and leaves it there for two cycles, when omnipotence hasn't even got anywhere near in its clear
23:06:04 <ais523> I think it's confused by the enemy being so slow
23:06:37 <ais523> !bfjoust the_other_death_to_defence (>)*8(>[(.)*20+])*21
23:06:40 <EgoBot> ​Score for ais523_the_other_death_to_defence: 6.4
23:06:57 <ais523> a variant of the first counter-defence program I ever wrote
23:07:17 <quintopia> ais523: the tape length you said didn't have any suiciding on waterfall3's part
23:07:20 <ais523> (as you can see, it doesn't actually work very well)
23:07:22 <ais523> quintopia: bleh
23:07:26 <ais523> let me quickly do a full run
23:08:21 <ais523> quintopia: at 25 it falls off its own end at one polarity, at 26 it falls off its own end on both
23:08:24 <ais523> so try it with 26
23:08:37 <ais523> or any longer length
23:08:39 <ais523> it happens on very long tapes
23:08:53 -!- augur has quit (Remote host closed the connection).
23:09:28 -!- augur has joined.
23:13:25 <ais523> btw, how do you test your BF Joust programs? I can run a complete set of lengths and polarities in a second, except where slow locks are being used
23:13:41 <ais523> and I thought that performance was typical
23:14:12 <FreeFull> Values wrap around at 255, right?
23:14:29 <FreeFull> And you don't know what value your flag starts at?
23:14:33 -!- augur has quit (Ping timeout: 276 seconds).
23:14:53 <ais523> FreeFull: your flag always starts at 128
23:14:58 <ais523> or -128, depending on your point of view
23:14:59 <FreeFull> Ah
23:15:03 <ais523> as does the enemy's
23:15:07 <ais523> the values in between are always 0
23:15:15 <FreeFull> So it starts at the best value
23:15:19 <ais523> not necessarily
23:15:34 <FreeFull> depends on the strategy of your enemy I suppose
23:15:45 <ais523> !bfjoust simple_turtle (>)*8(>[(+)*128>])*21
23:15:48 <EgoBot> ​Score for ais523_simple_turtle: 2.7
23:16:06 <ais523> err
23:16:09 <ais523> !bfjoust simple_turtle (>)*8(>[(+)*128.>])*21
23:16:12 <EgoBot> ​Score for ais523_simple_turtle: 15.7
23:16:15 <FreeFull> Lol
23:16:23 <fizzie> It takes me 15.5 wallclock seconds to run the hill (that hasn't been updated in a while), FWIW, re "typical performance".
23:16:23 <FreeFull> I was thinking "It did worse than doing nothing"
23:16:38 <ais523> most programs have countermeasures against that sort of thing nowadays
23:16:44 <ais523> but it really stormed the hill when it was first invented
23:17:11 <ais523> it'd do better with decoys
23:17:25 <ais523> !bfjoust simple_turtle (>(+)*12)*8(>[(+)*128.>])*21
23:17:28 <EgoBot> ​Score for ais523_simple_turtle: 11.5
23:17:39 <ais523> but they'd need to be set intelligently
23:18:05 <ais523> !bfjoust simple_turtle (>)*4((+)*8<)*3(+)*8(>)*7(>[(+)*128.>])*21
23:18:08 <EgoBot> ​Score for ais523_simple_turtle: 11.3
23:18:11 <ais523> hmm
23:18:17 <ais523> obviously I can't set them intelligently :)
23:18:33 <ais523> !bfjoust simple_turtle (>)*5(+)*5<((+)*64<)*3(+)*64(>)*7(>[(+)*128.>])*21
23:18:36 <EgoBot> ​Score for ais523_simple_turtle: 6.7
23:18:48 * ais523 stops trying
23:18:53 <ais523> !bfjoust simple_turtle <
23:18:56 <EgoBot> ​Score for ais523_simple_turtle: 0.0
23:19:08 <FreeFull> That's the first time I saw 0.0
23:19:34 <ais523> it's really easy, that's how you delete a prorgam
23:19:36 <ais523> *program
23:21:14 <FreeFull> !bfjoust suicide [-]
23:21:17 <ais523> by making it lose to everything but copies of itself, possibly with text afterwards
23:21:18 <EgoBot> ​Score for FreeFull_suicide: 8.1
23:21:23 <ais523> you can't die faster than going off your own end of the tape
23:21:37 <ais523> btw, your suicide does better than a nop because it can end up locking itself on an enemy rush program
23:21:37 -!- sivoais has changed nick to JonesTheDolphin.
23:21:39 <ais523> leading to a draw
23:21:52 <quintopia> i do not understand omnipotence's tape clear at all
23:22:06 -!- NuclearMeltdown has quit (Ping timeout: 245 seconds).
23:22:26 <ais523> quintopia: it's a full tape clear, except on the first tape element, it tries to clear values nearer 128 faster
23:22:38 <ais523> then it just keeps clearing for a while in case it's playing against a defence program
23:22:47 <quintopia> yeah but what the hell is the back-and-forth clear for
23:22:48 -!- JonesTheDolphin has changed nick to sivoais.
23:23:05 <ais523> quintopia: it's basically because as it has no tripwire, it can end up trying to full-tape clear against an enemy lock
23:23:14 <FreeFull> !bfjoust survival >[-]
23:23:14 <ais523> so it's designed to defeat locks
23:23:16 <EgoBot> ​Score for FreeFull_survival: 4.6
23:23:17 <ais523> the same idea as a timer clear
23:23:31 <ais523> FreeFull: exits after the [ because the tape element will be 0 there
23:23:38 <ais523> you want something like >([-])*-1
23:24:36 <FreeFull> What's ()
23:24:43 <ais523> FreeFull: run length encoding
23:24:50 <ais523> so (+)*100 is equivalent to typing out 100 copies of +
23:24:52 <FreeFull> Ah
23:24:58 <ais523> it's just sugar, but very useful sugar
23:25:21 <ais523> *-1 gives you enough copies that the program would hit the time limit before it stopped running
23:25:22 <ais523> hmm…
23:25:28 <ais523> !bfjoust mischief ()*-1+
23:25:33 <EgoBot> ​Score for ais523_mischief: 4.6
23:25:40 <ais523> haha, the interpreter checked for it :)
23:26:04 -!- GOMADWarrior has quit (Ping timeout: 240 seconds).
23:26:19 <FreeFull> !bfjoust survival >([-]>)*-1
23:26:21 <EgoBot> ​Score for FreeFull_survival: 14.8
23:26:26 <FreeFull> This one does commit suicide
23:26:48 <ais523> that's not even survival really more, it's a fast rush program
23:26:52 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]).
23:26:56 <FreeFull> !bfjoust survival >([-])*-1
23:26:59 <EgoBot> ​Score for FreeFull_survival: 3.7
23:27:04 <ais523> those historically don't do as well as slow rush programs, but they'll beat programs that are hyperoptimized against slow rush programs
23:27:54 <quintopia> ais523: and what does waterfall3 do that it thinks it a good idea to back off its end of the tape
23:28:20 <ais523> quintopia: it's doing an inline clear, so it zeros a cell behind the opponent to remember where its flag is
23:28:32 <ais523> and omnipotence unzeros it again :)
23:28:59 <FreeFull> !bfjoust survival >(+[-])*-1
23:29:02 <EgoBot> ​Score for FreeFull_survival: 1.8
23:29:09 <FreeFull> Lol, that did even worse
23:29:33 <ais523> FreeFull: protip: actually attacking is usually a good idea
23:29:38 <quintopia> that's like a vibrate on cell1
23:29:42 <ais523> yeah
23:29:47 <ais523> only a slow one
23:29:48 <FreeFull> !bfjoust survival >
23:29:51 <EgoBot> ​Score for FreeFull_survival: 3.8
23:29:57 <ais523> and the whole point of vibrating is to cause the opponent to miss your flag
23:29:57 <FreeFull> !bfjoust survival <
23:30:00 <EgoBot> ​Score for FreeFull_survival: 0.0
23:30:09 <ais523> causing the opponent to miss your /decoys/ is a new and untested strategy
23:30:12 <ais523> and for good reason ;)
23:30:12 <quintopia> survival!=suicide
23:30:29 <quintopia> actually its not new
23:30:34 <ais523> quintopia: huh, really?
23:30:51 <quintopia> i used it in an older version of space_hotel to beat counterpoke
23:31:18 <ais523> !bfjoust optimism (>)*9((+)*64<)*9(>)*8(>[(+)*20[-]])*21
23:31:21 <EgoBot> ​Score for ais523_optimism: 5.4
23:31:31 <quintopia> lol
23:31:35 <ais523> did I screw up the counting there
23:31:37 <ais523> or does it just suck?
23:31:38 <quintopia> did you just clear your own decoy
23:31:54 <ais523> err, yes
23:31:59 <ais523> it might be the enemy flag
23:32:02 <ais523> optimism!
23:32:06 <quintopia> lol
23:32:19 <ais523> !bfjoust optimism (>)*8((+)*64<)*8(>)*8(>[(+)*20[-]])*21
23:32:22 <EgoBot> ​Score for ais523_optimism: 16.5
23:32:24 <ais523> OK, slightly less insane version
23:32:49 <quintopia> works REALLY WELL on one polarity i bet
23:32:55 <quintopia> and long tapes
23:33:09 <ais523> yeah, the pattern is that it wins on long tapes on one polarity
23:33:15 <quintopia> make it 6 and see
23:33:16 <ais523> and loses on short tapes and the other polarity
23:33:24 <ais523> !bfjoust optimism (>)*6((+)*64<)*6(>)*8(>[(+)*20[-]])*21
23:33:27 <EgoBot> ​Score for ais523_optimism: 21.6
23:33:46 <quintopia> what's with those pint-sized decoys? make them 85!
23:33:47 <ais523> I'd prefer to mess about with the decoy setup so it's not cleared quickly on one polarity
23:33:52 <ais523> !bfjoust optimism (>)*6((+)*86<)*6(>)*8(>[(+)*20[-]])*21
23:33:55 <EgoBot> ​Score for ais523_optimism: 20.3
23:34:02 <quintopia> heh
23:34:08 <ais523> quintopia: I was thinking about the "85 is the largest sensible size for a decoy" thing
23:34:22 <ais523> I've decided it's wrong, because of /programs that check for size 85 decoys/
23:34:25 <ais523> they don't exist yet
23:34:29 <ais523> but they /could/!
23:34:51 <quintopia> i'm unconvinced
23:35:04 <ais523> !bfjoust optimism (>)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-]])*21
23:35:05 <ais523> so am I :)
23:35:07 <EgoBot> ​Score for ais523_optimism: 19.4
23:35:30 <ais523> as expected, this version gets a lot more outright wins
23:35:34 <ais523> but does a lot worse when it loses
23:35:54 <ais523> this seems more in the spirit of being optimistic
23:36:03 <ais523> !bfjoust optimism (>+)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-]])*21
23:36:06 <EgoBot> ​Score for ais523_optimism: 19.3
23:36:16 <ais523> huh, I thought that would make more difference
23:36:21 <ais523> !bfjoust optimism (>+++)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-]])*21
23:36:22 <quintopia> it doesn't build as many decoys as it used to
23:36:23 <EgoBot> ​Score for ais523_optimism: 19.7
23:36:29 <quintopia> oh
23:36:29 <quintopia> nvm
23:36:45 <quintopia> try alternating
23:36:45 <ais523> actually getting to tape element 9 quickly is important
23:36:54 <ais523> so that it can build before the opponent gets there
23:37:03 <ais523> !bfjoust optimism (>)*8(((+)*85<)*1((-)*85<)*1)*4(>)*8(>[(+)*20[-]])*21
23:37:06 <EgoBot> ​Score for ais523_optimism: 18.9
23:37:13 <ais523> less good
23:37:16 <quintopia> eenterest
23:37:19 <ais523> !bfjoust optimism (>)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-]])*21
23:37:22 <EgoBot> ​Score for ais523_optimism: 19.4
23:37:28 <ais523> probably because opponents have alternating clears sometimes
23:37:35 <ais523> !bfjoust optimism (>)*8(((+)*85<)*3((-)*85<)*1)*2(>)*8(>[(+)*20[-]])*21
23:37:37 <quintopia> not often
23:37:38 <EgoBot> ​Score for ais523_optimism: 18.8
23:37:53 <ais523> !bfjoust optimism (>)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-][+.++]])*21
23:37:56 <EgoBot> ​Score for ais523_optimism: 19.7
23:38:06 <ais523> huh, antishudder did nothing
23:38:09 <ais523> let me antivibrate too
23:38:11 -!- nooodl has quit (Ping timeout: 248 seconds).
23:38:19 <ais523> !bfjoust optimism (>)*8(((+)*85<)*2((-)*85<)*2)*2(>)*8(>[(+)*20[-][+.++[+.++]]][-.--[-.--]])*21
23:38:23 <EgoBot> ​Score for ais523_optimism: 25.9
23:38:35 <ais523> that's the sound of it resoundingly beating anticipation2, I bet
23:38:46 <quintopia> huh
23:38:54 <ais523> yeah
23:38:58 <quintopia> now resoundingly beat omnipotence
23:39:08 <ais523> quintopia: anticipation2 is fundamentally flawed
23:39:13 <ais523> that simple change can make /any/ rush program beat it
23:39:25 <quintopia> i know
23:39:26 <ais523> just nobody was bothering with antivibrate at the time
23:39:40 <quintopia> which is why you are probably wondering why i haven't added it to space_hotel yet
23:39:56 <quintopia> the answer is simple: meeeehhhhhhh
23:39:57 <ais523> I actually have no idea whether or not anticipation2 beats space_hotel
23:40:16 <ais523> also I'm becoming an increasing fan of that 5/3-cycle clear
23:40:46 <ais523> it pretty resoundingly beats every lock in existence, with no currently known countermeasure
23:40:53 <ais523> so it's a great thing to switch to if you suspect defence
23:41:06 -!- NuclearMeltdown has joined.
23:41:29 <FreeFull> Clearly the countermeasure is being faster
23:41:34 <ais523> I had to resort to such crazy measures to beat vibrate/shudder/lock all at the same time
23:41:37 <ais523> FreeFull: well, yes
23:41:46 <ais523> which is actually how omnipotence works
23:42:04 <ais523> you can defeat that, though, with a simple decoy that doesn't have size 1, 2, 3, or 5
23:42:30 <quintopia> which is lame and shameful :P
23:42:41 <ais523> the 1, 2, and 3 are the standard strategy
23:42:54 <FreeFull> So, 4?
23:42:55 <ais523> the 5 is the shameless special case for space_hotel :)
23:43:13 <quintopia> s/shameless/shameful/
23:43:20 <ais523> btw, I think we can declare 4-84 the official range of "medium decoys"
23:43:28 <ais523> quintopia: oh, omnipotence itself has no shame
23:43:31 <ais523> it's a BF Joust program
23:43:39 <quintopia> you should be ashamed
23:43:52 <ais523> quintopia: when you have a program /that/ hill-topping
23:43:59 <quintopia> i'm being silly of course
23:44:02 <ais523> you want to eke out a few extra points so that it's more impressive when you submit it
23:44:14 <ais523> just like I spent ages getting waterfall3 to 100% wins
23:44:15 <quintopia> i planar more shameful when i get back in the fall
23:44:20 <quintopia> lag
23:44:24 <quintopia> *i plan on being
23:44:25 <quintopia> far
23:44:50 <ais523> actually, the first instance of blatant shamelessness is waterfall3 against… lead_acetate_philip, I think
23:44:56 <ais523> let me check that it is that matchup
23:45:13 <quintopia> s/shamelessness/shamefulness/
23:45:30 <ais523> try it on 25 sieve, and you'll see what I mean
23:45:35 <quintopia> bfjoust: a game that will change as soon as shamefulness is maximized
23:45:50 <ais523> (summary: waterfall3 actually deletes its own decoys to prevent it changing strategy)
23:46:17 <quintopia> ah so that's what that deletion is about
23:46:32 <ais523> yeah it doesn't matter in any other matchup
23:46:41 <ais523> and mostly doesn't happen in other matchups
23:46:44 <ais523> only when it detects turtles
23:47:00 <ais523> (it can't know it's against lead_acetate_philip in particular, but the other turtles lose anyway)
23:47:11 <Sgeo> I guess there's no such thing as a universally good strategy that doesn't depend on detecting other strategies?
23:47:23 <ais523> Sgeo: if there is, it'd make the game very boring
23:47:33 <ais523> I thought that the ffspg/slowpoke/space_elevator strategy was that
23:47:45 <ais523> but it subsequently turned out that there are ways to take advantage of it
23:47:54 <ais523> ais523_stealth, for instance, beats programs like that quite effectively
23:48:03 <ais523> although doesn't do so well against other things
23:48:03 <quintopia> the only thing those have in common is poking afaict
23:48:18 <ais523> quintopia: poke + breadcrumb
23:48:25 <ais523> they all try to detect fast rushes
23:48:37 <quintopia> space_elevator does no breadcrumbing
23:48:43 <ais523> quintopia: huh, I thought it did
23:48:52 <quintopia> it does detect fash rushes, but it switches to a more defensive strategy
23:48:58 <ais523> yeah
23:49:07 <ais523> anyway, the point of stealth is that it's a fast rush that tries to be detected as a slow rush
23:49:19 <ais523> it's the opposite of omnipotence, which is a defence program that tries to be detected as a fast rush
23:49:47 <ais523> I guess now we need a slow rush that tries to be detected as defence
23:50:15 <ais523> but I can't think of a way to make that work, or figure out why it'd win if it did
23:51:06 <Sgeo> Wonder if a BF Joust-like game could be made with similar/same strategic concerns but easier to write code in than BF
23:51:19 <ais523> Sgeo: I considered making a very cut-down version
23:51:22 <Sgeo> Perhaps a BF derivative that's an easy mode for BF?
23:51:28 <Sgeo> Like BFC
23:51:33 <ais523> where you just abstractly went "poke. decoy. decoy. rush"
23:51:42 <ais523> and there were rules for what beat what
23:51:48 <ais523> it might be a good way to get started
23:52:13 <FreeFull> Maybe a stack-based alternative, where there is your stack and the opponent's stack, but you don't know which one's which
23:52:15 <ais523> part of the problem with that method is that there'd be only one fundamentally different fast rush program
23:52:20 <ais523> unless you count frsc, and that's ridiculous
23:52:46 <ais523> people keep proposing variants/"improvements" to BF Joust without understanding the fundamentals of what makes it BF Joust
23:52:58 <ais523> I think I'd say that something needs decoys to be considered remotely similar to it strategy-wise
23:53:05 <ais523> (necessary condition, not sufficient)
23:53:25 -!- WeThePeople has quit (Ping timeout: 256 seconds).
23:53:52 <FreeFull> Of course you need decoys
23:53:59 <FreeFull> Maybe stacks aren't the best data structure
23:54:00 <FreeFull> Hmm
23:54:06 <quintopia> the only changes i propose are to fix fundamental flaws. everything else i suggest is completely different bf-based games
23:54:11 <ais523> yeah, indeed
23:54:21 <ais523> do you think there are any fundamental flaws atm?
23:54:26 <quintopia> yes
23:54:28 <FreeFull> Two-dimensional would be too complex
23:54:35 <ais523> the existence of timer clear is worrying me, that's what I see as the biggest problem
23:54:36 <FreeFull> Unless you made the playfields small enough
23:54:39 <quintopia> the combination of determinism and finite hill size
23:54:44 <quintopia> is the main one
23:54:50 <FreeFull> 2D sounds good actually
23:54:54 <ais523> quintopia: oh, it's the hill you dislike rather than the game rules?
23:55:00 -!- Taneb has quit (Quit: Leaving).
23:55:20 <quintopia> ais523: a finite hill is fine in a nondeterministic games, so it really is the combination of the two
23:55:33 <quintopia> also i really want to see the fixed point scoring added
23:56:04 <ais523> 2D BF Joust: commands are north, south, west, east, dig (tells you the number of mines in the 8-neighbourhood, kills you if the current square is mined, wins if you're on the enemy flag), toggle presence of mine
23:56:34 <ais523> I meant that as a joke but it doesn't seem completely unviable
23:56:37 <quintopia> lol
23:56:46 <FreeFull> I'm not sure about the mines
23:56:51 <quintopia> a minesweep solver written in BF?
23:56:51 <ais523> presumably you'd start on a randomly-sized rectangle
23:57:00 <ais523> with the whole exterior full of mines, the interior originally non-mined
23:57:36 <FreeFull> ais523: Why not a toroidal playfield?
23:57:39 <quintopia> ais523: so i just completely surround my flag with mines right off, then keep extending the perimeter of my mine fence
23:57:46 <ais523> FreeFull: because you have to have some method to locate the enemy flag
23:58:05 <quintopia> (perhaps you could make mine placement trigger explosion if placed on a mine also)
23:58:21 <ais523> quintopia: so the problem using that is that because the playfield is rectangular, the enemy can locate your flag without even getting near your decoys
23:58:22 <FreeFull> ais523: Transverse the field somehow
23:58:25 <FreeFull> Maybe leaving marks
23:58:39 <ais523> you'd want to draw a line all the way across the field
23:58:57 <ais523> and perhaps mine under the opponent just as they tried to dig the square they thought was your flag
23:59:02 <ais523> (flags should be nonminable, obviously)
23:59:15 <quintopia> ais523: how? i don't have to make my mine base symmetrical? and if you don't know where in my giant rectangle of mines my flag is, you're reduced to guessing and dying
23:59:26 -!- nooga has joined.
23:59:28 <ais523> quintopia: well the playfield is rectangular
23:59:43 <ais523> so I measure the distance from my flag to each of the near corners
23:59:49 <ais523> (your flag being in the far corner)
23:59:53 <nooga> i'm trying to crack this in haskell: http://projecteuler.net/problem=21
23:59:53 -!- Sanky has quit (Ping timeout: 255 seconds).
23:59:58 <quintopia> ais523: i could make the area around my flag indistinguishable from the edge of the playing field
←2013-02-19 2013-02-20 2013-02-21→ ↑2013 ↑all