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