00:00:32 oh you meant tail. gotcha. 00:00:36 `run haskell 'm :: Integer; m = 20; newtype M = M Integer deriving (Eq, Show); instance Num M where { M x * M y = M $ (x * y) `mod` 10^m }; main = print $ iterate (\(M x) -> M 3 ^ x) (M 3) !! fromIntegral m' 2>/dev/null 00:00:40 M 4575627262464195387 00:01:26 close enough to excellent. 00:04:09 -!- MSleep has joined. 00:04:14 -!- MSleep has changed nick to MDude. 00:04:39 -!- pumpmas has changed nick to copumpkin. 00:04:53 oerjan: and it's still a multiplicative group! 00:05:15 yes 00:05:39 which is why the ^ implementation works for this 00:06:28 what's the difference between a group and a multiplicative group? 00:06:47 well it's about where it's used, i guess 00:06:58 it seems to be a notational thing. 00:07:04 and which notation, yes 00:07:41 abelian groups are frequently given additively, nonabelian ones almost never 00:08:06 addition is for 1st grades 00:08:10 and of course if there is a ring involved, the notation is standard 00:08:13 all the cool kids are doing muliplication. 00:08:40 also ^ would work for any semigroup, i should think 00:08:57 * kallisti imagines an elementary school that taught group theory 00:09:23 except for x ^ 0 which needs a unit 00:09:43 a semigroup is just a group without the unit, I'm guessing? 00:09:51 so no identity law. 00:09:54 no, it's a monoid without the unit 00:10:06 ah okay. 00:10:19 and thus no identity law, but still an associative law? 00:10:25 yes 00:12:03 I think you could probably teach basic group theory to older kids. 00:12:21 -!- derdon has quit (Remote host closed the connection). 00:12:25 it's not even particularly difficult if you explain it in words instead of SCARY MATHS SYMBOLS 00:14:09 I remember the usage of tuples being kind of confusing to me when I was first reading math articles on Wikipedia. 00:14:47 but then it became clear that it was just a notation for grouping components together, and then later "lol product type" 00:16:43 tuples are just elements of the colimit of a diagram with two unconnected sets, what's the problem? 00:17:22 unless it's limit, i can never remember for sure which is which. 00:18:26 .. 00:18:28 k 00:18:31 In abstract algebra, a normal subgroup is a subgroup which is invariant under conjugation by members of the group. Normal subgroups can be used to construct quotient groups from a given group. 00:18:35 so this means 00:19:00 that if you apply one operation, and then a second operation, then reverse the first one 00:19:06 you're back where you started? 00:19:10 for any element in the group? 00:19:13 .....? 00:19:35 no, you get back to the normal subgroup 00:19:55 oh so you're applying operations to the subgroup. 00:20:01 ....? 00:20:22 if you're always back exactly where you started, it's called the center. 00:20:50 or well 00:21:05 aba^-1 = b means ab = ba 00:21:16 ƒ(x) = a^(−1)xa, for all x in G, 00:21:23 where a is a given fixed element of G. 00:21:33 that kind of sounds like what I was saying. 00:21:39 yes that's a conjugation. 00:22:47 A subgroup, N, of a group, G, is called a normal subgroup if it is invariant under conjugation; that is, for each element n in N and each g in G, the element gng−1 is still in N. 00:22:51 oh, okay. 00:23:17 got it. I should have just kept reading instead of traversing infinitely further across Wikipedia's giant directed graph. :P 00:23:59 -!- GreaseMonkey has joined. 00:24:03 as long as you can get back to philosophy. 00:24:38 a concrete example of a normal subgroup would be helpful. it doesn't seem like it applies to very many integer subgroups... 00:25:22 -!- Patashu has joined. 00:26:02 hmmm wait for multiplication on integers, x^(-1) violates the closure property doesn't it? 00:26:51 and for addition, x^(-1) is actally x*(-1) .....? am I reading that correctly? 00:27:01 oh wait 00:27:08 x^(-1) is the inverse of x. 00:27:13 in that group. 00:27:51 kallisti: every subgroup of a commutative group is normal 00:28:33 the rationals \ {0} are a commutative group under multiplication 00:29:08 and the integers are one under addition. 00:29:46 so wait... is multiplication over integers a group at all? 00:29:50 no. 00:29:55 because there's no inverse. 00:29:58 yeah 00:30:07 er well 00:30:12 no inverse for every element, rather. 00:30:19 only 1 and -1 have any 00:32:02 commutativity is boring. 00:32:07 Gregor: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA // I believe elliott broke that. 00:32:10 one subgroup of the rational numbers is the set { 2^n | n integer } 00:33:12 -!- elliott has joined. 00:33:16 kallisti: if you look at permutation groups instead, and consider the permutations of a finite set, then the _even_ permutations form a normal subgroup 00:33:29 ....too advanced right now. 00:33:36 ok 00:33:44 I just now got "subgroups of commutative groups are normal" :P 00:34:06 permutation groups are very fundamental, though 00:34:09 because lol g^(-1)ng 00:34:31 because lol g^(-1)ng 00:34:33 ... Firefox lost its address bar. 00:34:34 Halp 00:34:42 lol g^(-1)gn 00:34:46 lol unit*n 00:34:49 lol n 00:34:53 lol QED 00:34:54 15:06:30: now we need to invent an esolang called Single Fifo 00:34:54 15:06:54: it's the most ontopic name a spambot's come up with yet, even if it's not as /funny/ as My name Is Johny, what the F**K??? 00:34:54 elliott: You have 1 new message. '/msg lambdabot @messages' to read it. 00:34:59 the problem is, how can it be TC? 00:35:04 Gregor: Ctrl+L? 00:35:32 oerjan said 1h 1m 12s ago: you appear to have deleted kallisti's HackEgo haskell script while EgoBot's wasn't even _working_ properly. what do you have to say in defense and how would you like to be 00:35:32 executed? 00:35:33 oerjan: 00:35:38 `run ghc -e '2+2' 00:35:42 oerjan: Complain at elliott. 00:35:43 4 00:35:44 `run ghc -e 'print 42' 00:35:49 42 00:35:51 elliott: not good enough 00:35:51 Q.E.D. 00:35:59 elliott: i was running an example that needed a module 00:36:12 oerjan: kallisti's didn't handle that. the one I wrote did, though 00:36:14 elliott: in fact that part of !haskell still works 00:36:17 admittedly, I do not remember kallisti's at all. 00:36:26 neither do I. 00:36:29 so you're safe. :P 00:36:33 and do not remember deleting one 00:36:37 YOU DID 00:36:39 so... whatever 00:36:40 elliott: anyway kallisti made something which worked afterwards 00:36:42 CURSE YOU 00:36:55 oerjan: well I haven't been online since yesterday if that is what you mean 00:37:10 elliott: this all happened tonight 00:37:17 oerjan: then I deleted nothing 00:37:22 and you're paranoid. 00:37:33 oerjan: but I wrote EgoBot's new !haskell so if it's broken complain to me directly. 00:37:36 elliott: well except that. 00:37:48 !haskell main = print "Why I no work???????????????" 00:37:51 runhaskell: syntax: runghc [-f GHC-PATH | --] [GHC-ARGS] [--] FILE ARG... 00:37:59 It's because you used a meme. 00:38:03 It rejects programs with memes. 00:38:04 ah. 00:38:15 !haskell main = print "What about this, then?" 00:38:18 runhaskell: syntax: runghc [-f GHC-PATH | --] [GHC-ARGS] [--] FILE ARG... 00:38:28 Gregor: Can you push EgoBot's hg repo to http://codu.org/projects/egobot/hg/ so I can see my own script? X-D 00:38:31 !haskell --help 00:38:34 runhaskell: syntax: runghc [-f GHC-PATH | --] [GHC-ARGS] [--] FILE ARG... 00:38:34 Oh, wait! 00:38:37 elliott: lul 00:38:38 oerjan: I remember this problem. 00:38:42 AHA 00:38:46 The problem is that that is trying to use GHC 6.12. 00:38:50 the defendant confesses! 00:38:57 It's Gregor's fault. 00:39:03 Gregor: Where is HackEgo's custom GHC installed from EgoBot's perspective? 00:39:12 `ghc --version 00:39:15 The Glorious Glasgow Haskell Compilation System, version 7.2.1 00:39:21 `haskell import System.Random; main = print `fmap` (randomIO :: IO Int) 00:39:24 elliott: Done 00:39:25 ​\ /tmp/tmp.j7vwVntFq3:1:8: \ Could not find module `System.Random' \ Use -v to see a list of the files searched for. 00:39:26 Good enough, even if it is a bit buggy IIRC 00:39:30 .. 00:39:31 `rm bin/haskell 00:39:32 elliott: Inaccessibly is where. 00:39:34 No output. 00:39:45 Gregor: Can you... fix that? :P 00:40:01 elliott: Is there a cp -hardlink option >_> 00:40:12 Yes, there is! 00:40:12 * kallisti wonders why System.Random did not exist. 00:40:27 kallisti: Probably because System.Random is in random, not base. 00:40:29 !sh ls /opt/ghc 00:40:30 ​/bin/ls: cannot access /opt/ghc: No such file or directory 00:40:33 Err 00:40:43 Oh 00:40:52 elliott: base doesn't include random numbers? o_o 00:41:11 !sh ls /opt/ghc 00:41:11 bin 00:41:20 Yay 00:41:37 Admittedly I should get Gregor to install the Haskell Platform libs globally for that GHC 00:41:39 But that can wait 00:41:47 elliott: also why did you delete my script again? 00:41:52 it still has a purpose currently. 00:41:55 Gregor: Here's yer new interps/ghc/runghc: 00:41:55 #!/bin/bash 00:41:55 src=$(cat $1) 00:41:55 if ! /opt/ghc/ghc -e "$src" 2> /dev/null 00:41:55 then 00:41:56 /opt/ghc/runhaskell <<< $src 00:41:58 fi 00:42:00 Erm 00:42:02 */opt/ghc/bin 00:42:18 kallisti: Because it didn't run the program you made it for and is about to become obsolete :P 00:42:23 elliott: i should point out that kallisti's version had the advantage that it could suppress warnings. (by using `run ... 2>/dev/null, admittedly.) 00:42:36 oerjan: Mine does not run with -Wall. 00:42:47 elliott: Not helpful >_> 00:42:55 Gregor: :'( 00:43:00 It's two path changes :P 00:43:46 elliott: you could at least be polite enough to wait for it to become obsolete. clearly I have some massive Haskell program I want to dump into IRC. 00:44:12 19:27:53: Who was it that was asking me about "classical" composers? 00:44:12 19:28:01: But is also never on while I'm awake. 00:44:17 Gregor: hagb4rd 00:44:18 fucking deletionist scum. 00:44:52 kallisti: elliott will probably die if he's forced to be polite, anyway 00:45:10 Yes. That is why banning me is immoral. 00:45:26 hey banning you doesn't force you to be polite 00:46:01 `run cd bin && echo '#!/bin/sh' > haskell && echo 'T=`mktemp`; echo "$1" > $T; runhaskell $T' >> haskell && chmod +x haskell #edit war, sucker 00:46:04 No output. 00:46:08 WHAT NOW? 00:46:25 Uh, jEdit? 00:46:31 I told you to indent at a width of 4. 00:46:36 Why are you inserting 8 tabs? 00:46:59 you must have tabs set to be half of a space each 00:47:12 *eight spaces 00:47:23 oh. 00:47:28 that's much more reasonable. 00:47:33 (but still wrong) 00:50:51 hey banning you doesn't force you to be polite 00:50:57 it forces me to not be non-polite 00:51:01 `rm bin/haskell 00:51:03 No output. 00:51:04 terrible abuse of mktemp 00:51:10 author does not know how runhaskell functions 00:51:11 also 00:51:18 fails to remove temporary file in any situation (!!!) 00:51:24 thus disk leak 00:51:31 Q.E.D. 00:51:46 runhaskell doesn't allow input from stdin 00:51:51 elliott: erm the /tmp file is not preserved afawct 00:52:02 oerjan: well ok. i defer to all my other reasons 00:52:24 the mktemp is necessary because runhaskell doesn't allow input from stdin. 00:52:27 [elliott@dinky ~]$ runhaskell 00:52:28 main = putStrLn "kallisti is an idiot." 00:52:28 ^D 00:52:28 kallisti is an idiot. 00:52:31 [elliott@dinky ~]$ 00:52:39 Is it just me, or is antialiasing a good thing? 00:52:40 elliott: oh, hmmm 00:52:46 [elliott@dinky ~]$ runhaskell --version 00:52:46 runghc 7.0.3 00:52:48 `runhaskell --version 00:52:49 Sgeo: what 00:52:50 runghc 7.2.1 00:52:51 elliott: that's probably how I implemented it originally 00:52:53 jEdit was hurting my eyes until I enabled subpixel antialiasing 00:53:09 (Well, not literally hurting my eyes, but it was annoying to look at) 00:53:11 oerjan: $TMPDIR might not be, though. 00:53:30 19:35:15: kallisti: 1) Not a classical composer, 2) not a pre-20th-century composer people usually think of in the top five, making "only" bizarre, 3) "clsaasical", 4) "ocmpostr" 00:53:33 Gregor: classical composter 00:53:40 * elliott prefers traditional composint methods 00:53:41 TMPDIR might also have a space in it, which leaves `mktemp` screwing up. 00:53:42 composting 00:53:47 pikhq_: Untrue 00:54:04 Admittedly, this is unlikely in the case of HackEgo. 00:54:10 pikhq_: You are mistaken about how the assignment "statement" works in sh. 00:54:15 (POSIX & bash & all implementations) 00:54:17 -!- Sgeo|jEdit has joined. 00:54:22 Oh, right, that works strangely. 00:54:28 There really isn't a good reason to use this as an IRC client. 00:54:34 `run cd bin && echo '#!/bin/sh' > haskell && echo 'echo "$1" | runhaskell' >> haskell && chmod +x haskell #edit war, sucker 00:54:37 No output. 00:54:37 OF course, the unquoted $T later will screw up. 00:54:41 elliott: it is possible i slightly deluded kallisti into believing runhaskell cannot use stdin *cough* 00:54:46 `rm bin/haskell 00:54:48 No output. 00:54:54 Author does not take advantage of state-of-the-art <<< input methods 00:55:00 oerjan: You are a true patriot 00:55:18 -!- Sgeo|jEdit has quit (Client Quit). 00:55:26 elliott: Which doesn't work with #!/bin/sh (does with #!/bin/bash). 00:55:29 elliott: what advantage? 00:55:36 kallisti: One fewer process 00:55:41 They're in short supply in HackEgo! 00:55:57 pikhq_: Exactly, he uses obsolete technologies!!! 00:56:08 Also, um, echo is a shell builtin. Even in POSIX. 00:56:18 Thus, no extra process. 00:56:36 pikhq_: Nothing's STOPPING you from implementing it as an external program while still being POSIX-compliant. 00:56:44 The builtin could spawn a /bin/echo process. 00:56:53 That said, exec runhaskell <<<"$1" is clearly better. 00:56:55 He used #!/bin/sh, so he can't rely on any implementation guarantees! 00:56:57 elliott: yeah fuck standards compliance! 00:57:10 kallisti: Welcome to the 21st century. 00:57:53 Which I *think* is a Korn-ism, and should work on just about any shell that's not C or very strict POSIX. 00:58:31 `run cd bin && echo '#!/bin/sh' > haskell && echo 'exec runhaskell <<< "1"' >> haskell && chmod +x haskell #edit war, sucker 00:58:33 No output. 00:58:36 `run rm bin/haskell # author has terrible track record; software likely to be unreliable in many respects 00:58:38 No output. 00:58:46 aloril: Fail. 00:58:50 kallisti: 00:58:51 Erm 00:58:51 aloril: Faaaaaaail. 00:58:55 aloril: SHAME ON YOU 00:59:00 pikhq_: fail where? 00:59:05 oh 00:59:12 `run cd bin && echo '#!/bin/bash' > haskell && echo 'exec runhaskell <<< "1"' >> haskell && chmod +x haskell #edit war, sucker 00:59:14 No output. 00:59:20 kallisti: <<< doesn't work in more POSIX-ly shells, such as Debian Almquist. 00:59:23 `run rm bin/haskell # author's contract with us has been terminated 00:59:25 No output. 00:59:37 Also, faaaail 00:59:48 `run cat <<<"1" 00:59:50 1 01:00:02 TIL kallisti can't write a two-line shell script. 01:00:06 Actually, derp 01:00:12 `run <<<"1" 01:00:14 No output. 01:00:23 ... Dammit, that working is a zsh-ism. 01:00:23 `run is sh 01:00:25 not bash 01:00:26 bash: is: command not found 01:00:29 `run bash -c '<<<"1"' 01:00:31 No output. 01:00:32 elliott: I wrote a perfectly fine shell script, but then you told me to use all of these things I'm not familiar with. :P 01:00:34 oh 01:00:43 kallisti: Perfectly fine apart from all the bugs 01:00:54 such as? 01:01:02 `run echo $BASH 01:01:04 ​/bin/bash 01:01:09 Bam, it's bash. 01:01:19 pikhq_: It's bash invoked as sh, I thought, but maybe not 01:01:27 elliott: Can't be. 01:01:27 kallisti: For one, it failed to handle temporary directories with spaces in them. 01:01:39 pikhq_: Hmm, I may have changed that, actually :) 01:01:56 elliott: /bin/sh on the system HackEgo's using is Debian Almquist. 01:02:07 pikhq_: Ah, indeed 01:02:19 pikhq_: Though I believe alternatives lets you select that. 01:02:30 Yeah, but who messes with that? :P 01:02:33 `run cd bin && echo '#!/bin/bash' > haskell && echo 'echo "$1" | runhaskell' >> haskell && chmod +x haskell #this is the best one, okay. 01:02:36 No output. 01:02:48 Hmm. It's not going through the alternatives system here. 01:02:53 It's just a symlink to /bin/dash 01:02:53 `rm bin/haskell 01:02:55 No output. 01:02:59 Spawns additional runhaskell process instead of using exec 01:04:05 `run cd bin && (echo '#!/bin/bash';echo 'exec runhaskell<<<"$1"')>haskell&&chmod +x haskell # Thar 01:04:07 No output. 01:04:28 how is this different from what I wrote.. 01:04:38 or 01:04:39 one of the ones I wrote 01:04:43 that elliott deleted. 01:05:03 oh 01:05:04 I see. 01:05:06 I forgot the $1 01:05:19 Learn to shell kthx 01:05:34 pikhq_: I was under duress from elliott :P 01:06:01 and his fighting words; 01:06:06 fighting words such as "rm" 01:06:13 very enraging. 01:06:51 `haskell main = putStrLn "Hello, World!" 01:06:56 Hello, World! 01:07:50 `haskell 2+2 01:07:55 ​\ /tmp/runghcXXXX276.hs:1:1: \ Parse error: naked expression at top level 01:07:56 `rm bin/haskell 01:07:59 No output. 01:08:07 elliott: use inferior expression-oriented evaluators for that. 01:08:21 elliott: `haskell is for big boys with Real IRC Programs. 01:08:22 You realise that the script in EgoBot does everything you're trying to do and has for ages so you could just copy it in. 01:08:36 elliott: it doesn't _yet_ 01:08:48 oerjan: Yes it does, it would function perfectly in HackEgo's environment. 01:09:08 Also, yeah, I only put that one in because maybe having something do what he *thinks* is desired would make him stop trying. :P 01:09:08 `fetch http://codu.org/projects/egobot/hg/index.cgi/raw-file/4523638d4513/multibot_cmds/interps/ghc/runghc 01:09:10 2011-12-17 01:09:09 URL:http://codu.org/projects/egobot/hg/index.cgi/raw-file/4523638d4513/multibot_cmds/interps/ghc/runghc [91/91] -> "runghc" [1] 01:09:15 `run mv runghc bin/haskell; chmod +x bin/haskell 01:09:18 No output. 01:09:21 `haskell 2+2 01:09:26 Oh, not quite. 01:09:26 cat: 2+2: No such file or directory 01:09:28 Needs one tweak. 01:09:29 :P 01:09:33 @_@ 01:09:41 `run sed -i 's/\$(cat \$1)/$1/' bin/haskell 01:09:44 No output. 01:09:46 `haskell 2+2 01:09:52 4 01:09:58 `haskell main=putStrLn "Hello, world!" 01:10:04 No output. 01:10:10 o_X 01:10:11 o.O' 01:10:18 man it would be so much easier if we like... used that other script 01:10:20 which works fine. 01:10:24 `run runhaskell <<< 'main=putStrLn "Hello, world!"' 01:10:29 Hello, world! 01:10:31 kallisti: Except it clearly doesn't. 01:10:34 Hmm 01:10:37 Maybe 01:10:37 runhaskell <<< $src 01:10:38 pikhq_: in what way? 01:10:41 wasn't as safe as it seemed to be in my tests 01:10:47 kallisti: `haskell 2+2 failed 01:10:55 that's not what `haskell does :P 01:10:55 `run sed -i 's/<<< \$src/<<< "$src"/g' bin/haskell 01:10:57 No output. 01:10:59 `cat bin/haskell 01:11:01 ​#!/bin/bash \ src=$1 \ if ! ghc -e "$src" 2> /dev/null \ then \ runhaskell <<< "$src" \ fi \ 01:11:07 `haskell main=putStrLn "Hello, world!" 01:11:12 No output. 01:11:19 What the fuck? 01:11:29 What the actual fuck. 01:11:33 [elliott@dinky ~]$ ghc -e 'main=putStrLn "Hello, world!"' 01:11:33 :1:5: parse error on input `=' 01:11:33 [elliott@dinky ~]$ echo $? 01:11:33 0 01:11:42 Well that's not fucking idiotic. 01:11:44 WHY GHC WHY 01:11:54 elliott: why did you expect ghc -e to do that? 01:12:04 kallisti: It failed. Failing programs do not exit status code 1. 01:12:14 elliott: $ ghci\nmain=blah\n^D\necho $? 01:12:24 shachaf: It's not ghci, it's ghc -e :P 01:12:44 elliott: ghc -e evaluates ghci expressions. 01:12:49 ghc -e ':m + Foo' -e 'blah' 01:12:51 * oerjan sidles away carefully 01:12:57 kallisti: Because the First Law of Unix is failing programs return 1. 01:12:59 shachaf: PAH 01:13:22 pikhq_: in any case lambdabot works fine for expressions, so does ghc -e 01:13:41 so just have `haskell for actual haskell programs. 01:14:44 kallisti: But GHC is breaking the Law 01:14:50 Not the law, but the Law. 01:14:58 You do not report success on failure. 01:15:10 okay, how is this relevant to having a command that can run whole haskell programs? 01:15:31 Because having a command that can run whole haskell programs and haskell snippets is clearly superior. 01:16:04 what about the intersection of programs that were intended to be whole haskell programs but have syntax errors and accidentally get interpreted as correct expression 01:16:07 YOU NEVER KNOW 01:16:10 IT MAY HAPPEN 01:16:29 You realise that !haskell has always done this. 01:16:35 yes 01:16:42 Its advantages over lambdabot include being able to do IO. 01:16:45 what does that have to do with my TOTALLY AWESOME POINT. 01:16:46 yes I know 01:16:54 `run ghc -e "print 2 + 2" 01:16:59 ​\ :0:11: \ No instance for (Num (IO ())) \ arising from the literal `2' \ Possible fix: add an instance declaration for (Num (IO ())) \ In the second argument of `(+)', namely `2' \ In the expression: print 2 + 2 \ In an equation for `it': it = print 2 + 2 01:17:02 `run ghc -e "print $ 2 + 2" 01:17:07 4 01:17:08 elliott: if only we had some way to do that 01:17:13 * kallisti hmmms. 01:17:23 kallisti: "ghc -e isn't good enough" --kallisti 01:17:31 ..for whole programs, no. 01:17:34 `rm bin/haskell 01:17:36 No output. 01:17:42 kallisti: runhaskell <<< '...' 01:17:49 Basically as short, since apparently you don't mind having to quote things 01:18:23 we could have two different programs. 01:18:36 also, having both in one makes error output potentially confusing. 01:19:13 There are easy ways to report the correct error, but it's even easier to just rm bin/haskell all the time 01:19:48 one day the world is going to need saving 01:19:51 and THE ONLY WAY TO DO IT 01:20:03 IS VIA THIS IRC CHANNEL, BY INPUTTING A WHOLE HASKELL PROGRAM WITHOUT STRINGS TO HACKEGO 01:20:15 AND YOU'RE GOING TO BE SORRY WHEN WE DON'T HAVE THE ABILITY BECAUSE YOU'RE A JERK. 01:20:18 -!- kallisti has quit (Quit: ragequit). 01:21:35 -!- pikhq has joined. 01:22:18 -!- pikhq_ has quit (Ping timeout: 276 seconds). 01:22:53 I would try to make a combination of Forth and Fortran called Forthran, but I don't really know either lnaguage. 01:23:09 That would be ... an interesting language. 01:23:44 It would be stack-based, based on an threaded compiler-style loop, be heavily optimised for fast numerics, have a fixed format for lines to be in... 01:23:52 Assuming we mean Fortran 77 or w/e 01:25:23 -!- kallisti has joined. 01:25:27 AAAAAARGH 01:30:35 -!- cswords__ has joined. 01:32:07 * elliott considers writing a cs-words bot in the proud tradition of news-ham. 01:33:42 " ....too advanced right now." while you may not know what even permutations are, a nice thing to remember is that if N is a subgroup of G that contains half its elements, then it's normal 01:33:56 -!- cswords_ has quit (Ping timeout: 248 seconds). 01:34:45 or if N contains more than a third of G:s elements, since the size of a subgroup divides the size of the group, and G itself is obviously a normal subgroup of itself. 01:35:25 and permutations are divided into even and odd ones, and you have the same amount of each, so evens are normal. 01:36:37 oklopol: I know what a permutation is. -_- 01:36:51 or did you mean permutation group? 01:37:11 what is an "even permutation" 01:39:29 yeah that's what i assumed you didn't get in oerjan's message 01:39:35 the even permutation thing 01:39:40 well 01:39:55 do you know that permutations are generated by swaps 01:39:58 that is 01:40:03 Your item was processed through our JAMAICA, NY 11430 facility on December 11, 2011 at 11:38 pm. Information, if available, is updated periodically throughout the day. Please check again later. 01:40:05 ah okay so I have a vague idea of what a permutation group is, but I'm not clear on what the operation for a permutation group is. 01:40:06 WHY IS MY PACKAGE IN JAMAICA 01:40:16 for every permutation, you can perform a sequence of permutations that just swap two elements which does the same thing 01:40:28 kallisti: oh it's just permuting first with one permutation then the other 01:40:30 oklopol: right 01:40:45 so anyway about these swaps 01:40:58 it turns out half the permutations always take an even amount of swaps 01:41:02 no matter how you do them 01:41:10 and the other half take an odd number of swaps 01:41:22 and the even ones form a subgroup. 01:41:57 BANKRUPTCY EVERYONE!!! 01:42:06 I feel you may be using the word permutation in a different way. I usually think of a permutation as a specific set. but you said "permuting first with one permutation then the other" so then are you talking about permutation as a function? 01:42:13 -!- pikhq_ has joined. 01:42:23 -!- pikhq has quit (Ping timeout: 245 seconds). 01:42:24 a permutation is just a bijection from a finite set to itself, yes 01:42:28 oklopol: ah okay so the parity of a permutation refers to the number of swaps (is there a formal name for that?) 01:42:50 you can represent this with a tuple containing every element exactly once, although there are two ways you can interpret that 01:43:00 oklopol: what about infinite set CHECKMATE!!!! 01:43:04 oklopol: from a finite set to itself... I thought you needed an ordered set for a permutation to make any sense. 01:43:18 kallisti: the number of swaps is not really well-defined 01:43:27 you can perform useless swaps and increase it 01:43:43 point is the parity stays the same (this needs a proof ofc) 01:43:52 kallisti: no you don't need a permutation 01:43:53 well sure I can see why. 01:44:09 a "useless swap" would be where you perform a swap on the same locations twice. 01:44:20 yeah but you could also do something more complicated 01:44:20 2+n will always preserve the parity. 01:44:28 oklopol: yes. 01:44:35 oklopol: but I'm assuming it follows the same basic principle. 01:44:44 happy 1:44 am everybody 01:44:57 well right, it's a plausible conjecture. especially as we know that it's true :P 01:45:41 19:53:10: It's surprising just how unmoonlike the far side of the moon looks. 01:45:42 There's no far side of the moon, really. As a matter of fact it's all far. Er, wait. 01:46:31 we had an 18 hour programming day 01:47:02 oklopol: oh nevermind I misunderstood what you mean by bijective map from a set onto itself. 01:47:36 it just means you move the elements around 01:47:40 oklopol: yes 01:47:53 I was thinking it was a function from a set to itself.... (id function) that didn't make any sense. 01:48:17 yeah the id function is the identity of the permutation group though, so it's very important 01:48:30 ah okay. 01:48:37 and then the operation is composition. 01:48:40 yeah 01:48:41 of the bijective maps. 01:48:45 okay. 01:49:02 of course we have a different permutation group for all set sizes n 01:49:07 so a permutation group just... moves stuff around in a sequence. 01:49:38 like a rubik's cube or something. 01:49:43 yeah. and swaps generate it and things have parity. and every other finite group can be found as a subgroup. 01:49:58 those are the most important things i suppose 01:50:07 oklopol: do the swaps have a name? it would be a permutation where only one element changes. 01:50:15 er, two 01:50:37 yeah but i couldn't remember the real term :d 01:51:33 so all groups have a symmetry group that's all the permutations of its set. 01:51:40 ?? 01:51:56 and then the other permutation groups are subgroups of the symmetry group. 01:51:57 ah it's a transposition 01:52:30 oklopol: hmmm you could also swap things in a cycle. 01:52:43 well the cycles are very important too. 01:52:50 as in, swapping more than 2 elements at once. 01:53:05 but I assume you can construct that from just the 2 element transpositions? 01:53:05 in fact, up to order of cycles, every permutation is a composition of disjoint cycles in a unique way. 01:53:20 yeah you can 01:53:33 that's one way to prove that transpositions generate all permutations 01:53:37 http://phplens.com/phpeverywhere/?q=node/view/254 how to do multithreading in php: make two simultaneous requests to scripts on localhost using asynchronous IO 01:53:41 you can't make this shit up 01:54:47 but about groups and symmetry groups... basically if your group G has size n, then we note that in fact every element of the group "acts" bijectively on G (left multiplication is bijective from G to G), so you can think of any g in G as a permutation on an n element set 01:55:09 and if you take the permutation of each g in G, they form a subgroup of the permutation group of size n which is isomorphic to G 01:55:13 does that make sense? 01:55:13 oklopol: okay so then the transpositions themselves are just elementary permutations that can you can compose into all of the other permutations. 01:55:27 with cycles being another elementary kind of permutation that is also composed of transpositions. 01:56:04 @src (.) 01:56:05 (f . g) x = f (g x) 01:56:05 NB: In lambdabot, (.) = fmap 01:56:09 lesson: @source is not @src, guys 01:56:24 elliott: I was tempted to try @src but I assumed it was the same thing. 01:56:43 20:16:15: @tell Ngevd Is the same as f x = a . b . c . d $ x 01:56:47 is the same as f = a . b . c . d 01:57:03 yeah. if by "that can you can compose into all of the other permutations" you mean every other permutation can be decomposed into a product of transpositions. 01:57:07 20:16:31: @tell Ngevd use catMaybes :: [Maybe a] -> [a] instead 01:57:08 20:21:22: Should it be fixed to work with other monads too? Such as, instead of only list monad it can work other MonadPlus as well. 01:57:08 20:22:09: zzo38: that would make it much more inefficient for the list case I believe. 01:57:14 kallisti: yes, this wild unjustified speculation is reasonable 01:57:23 especially since you can use the SPECIALISE pragma. 01:57:34 elliott, didn't I say that somewhere? 01:57:43 Sgeo: yes, but not while Ngevd was around 01:58:34 elliott: I would think catMaybes uses a recursive definition rather relying on concatMap 01:58:45 +than 01:58:51 kallisti: concatMap is recursive, you moron 01:58:54 which would be more efficient, modulo specialise pragma. 01:58:56 also 01:58:56 elliott: no shit. 01:58:57 20:25:41: @src catMaybes 01:58:58 20:25:41: catMaybes ls = [x | Just x <- ls] 01:58:59 ~NO RECURSION~ 01:59:08 elliott: that's not what I meant. 01:59:11 but no, it would not be more efficient. 01:59:18 GHC has a very aggressive inliner; you're spreading FUD 02:00:04 20:55:43: basically, (.) does _not_ access all the arguments of its first argument, only the first, so there's no way to use it to treat its first argument as taking a stack. 02:00:13 Sgeo: oerjan: however we can model things by changing standard functions 02:00:22 (+) :: (Num a) => (a,(a,r)) -> (a,r) 02:00:31 then all we need is (a,r) -> (a,(a,r)) which is trivial 02:00:36 and (.) works fine 02:00:42 swap :: (a,(b,r)) -> (b,(a,r)) 02:00:50 swap (a,(b,r)) = (b,(a,r)) 02:00:52 elliott: concatenations require more time than simply skipping over Nothing elements in a recursive function while building the list with : 02:00:56 elliott: is what I was saying 02:01:01 elliott: but catMaybes doesn't do that. 02:01:41 kallisti: it is incredibly likely that the concatMap would be completely inlined away in the SPECIALISE-generated Core for zzo's version. 02:02:20 hmm, okay. 02:03:47 21:30:11: It reminds me of that bit in Fine Structure where — oh wait future elliott. 02:03:48 Arse. 02:04:04 I like how he looks hideous in that painting. 02:06:29 elliott, you still haven't read Fine Structure? 02:07:10 I read about ~half of it but then trailed off. 02:08:03 To be fair, the structure of it is sufficiently weird that it's, well, insane to follow. 02:09:00 -!- zzo38 has joined. 02:09:03 * elliott had no problems up to the point he was at. 02:09:31 Maybe he reordered things? 02:09:46 I read it as it released, though. Which was hella-confusing. 02:09:54 Oh, right, he definitely reordered things. 02:10:07 I got up to The Story So Far. 02:10:28 Perhaps I should reread it. 02:10:30 Maybe one or two chapters further. 02:10:31 No, definitely. 02:10:42 Maybe I should read Ra as it comes out. 02:11:12 Unbelievable Scenes, for instance, was not originally the start of Fine Structure. 02:11:28 pikhq_: That is not a change that makes it less confusing. 02:11:37 I'm sad he removed Forgotten things in space though. 02:11:53 Indeed, it was not originally in Fine Structure. 02:12:11 Nor was The Astronomer's Loss. 02:12:33 Neither was Crushed Underground. 02:13:31 what's fine structure about 02:14:14 Lots of things. 02:14:24 As described, "This is a story about science." 02:14:29 http://qntm.org/structure 02:20:14 Well, I now hate my first Hackage package. 02:20:26 And now I know why lazy I/O is loathed 02:20:39 what package 02:20:42 ftphs 02:20:51 why aer you using ftp 02:21:02 why are you using a package that depensd on haskell98 and was last updated in early 2010 02:21:45 elliott, because it's the first one I sw 02:21:46 *saw 02:21:52 clever 02:22:58 23:39:21: that _should_ be enough with a ghc recent enough to support all declarations in ghci. but that's pretty recent, maybe even after latest platform. 02:23:06 oerjan: that's called "ghc from git" 02:23:14 not the most popular release 02:24:44 pretty recent, then. 02:25:32 oerjan: what comes next after 247, 230, 260 btw 02:26:01 hm... 02:26:32 > iterate (zipWith (-) . tail) [247,230,260] 02:26:32 Couldn't match expected type `[a] -> [a]' 02:26:33 against inferred type `[a]' 02:26:45 > iterate (join $ zipWith (-) . tail) [247,230,260] 02:26:47 [[247,230,260],[-17,30],[47],[],*Exception: Prelude.tail: empty list 02:28:05 > scanl (+) 247 [-17,30,77] 02:28:06 [247,230,260,337] 02:28:10 elliott: 337 02:28:18 scientifically proven 02:28:22 oerjan: oh dear. 02:28:25 oerjan: what comes after /that/? 02:28:39 once it exceeds 500 the universe explodes 02:28:51 > scanl (+) 247 $ iterate (+47) (-17) 02:28:52 [247,230,260,337,461,632,850,1115,1427,1786,2192,2645,3145,3692,4286,4927,5... 02:29:24 ok. the universe has 2 more days to live. 02:29:33 then the vortex will engulf us all 02:29:39 ok. 02:29:41 elliott: There's a section in "Mathematics Made Difficult" about "what comes next"-style questions. 02:29:52 shachaf: Yes, yes, anything you want can come next. 02:30:01 Dec 19 2011. Just a little more than a year off. 02:30:03 (I'm assuming that's the point.) 02:30:20 OK, I have now installed a filter that will remove the tongue smiley from every line I type in IRC and IM. I hope to stop overusing it. CAN I SURVIVE??? 02:30:23 oerjan: well the mayans weren't /that/ good at keeping track of time 02:30:33 Gregor: What did you do to the REAL Gregor? 02:31:24 elliott: You'll have to become accustomed to me not sticking my tongue out every line! 02:31:25 ',p 02:31:31 Gregor: :P 02:31:35 oklopol: OH GOD WHAT HAPPENED TO YOUR FACE?!?!?!? 02:31:57 elliott: Well, in particular the contents of that section. 02:32:04 shachaf: Of course the best answer for that is fix (1:) 02:32:38 Gregor: sorry that was my other face 02:32:41 :P 02:32:59 :P:P:P:P:P:P:P:P:P:P:P 02:33:09 :P 02:33:13 :P 02:33:16 OH GOD MY TONGUE HAS A FACE! WITH A TONGUE! 02:33:18 AND IT NESTS! 02:33:21 AAAAGH 02:33:34 :o 02:33:37 pikhq_: those tongues are not getting smaller. your recursion is unsound 02:33:41 i never realized it was supposed to be a tongue, btw 02:33:49 it's finite so it's okay 02:34:01 oerjan: seriously? 02:34:04 elliott: No, my geometry is non-Euclidian. 02:34:18 oerjan: what did you ever realize it is? 02:34:19 >_> <_< 02:34:22 yeah i just thought it was a smiley in profile 02:34:28 I hope I don't just end up overusing these faces >_> 02:34:33 oerjan: how 02:34:36 Or taking the time to type :þ 02:34:37 Gregor: Filter those out too 02:34:51 -!- kallisti has quit (Ping timeout: 248 seconds). 02:34:55 elliott: Naw, I'm not trying to prevent myself from using smileys /at all/, just to stop overusing them. 02:35:00 Gregor: filter everything out 02:35:05 elliott, any good FTP Haskell libraries? 02:35:06 oerjan: I cannot see how that is a smiley in profile at all. 02:35:09 I mean, there's curl, but 02:35:16 Sgeo: http://hackage.haskell.org/packages/archive/pkg-list.html 02:35:20 elliott, I looked 02:35:20 Sgeo: Here's a solution: Don't use FTP. 02:35:22 It's 2011. 02:35:23 Don't use FTP. 02:35:25 irc would be a better place if everyone just said empty lines 02:35:33 02:35:34 you'd have a button called "say" 02:35:45 Too lazy not to use FTP 02:35:53 Sgeo: Why are you using FTP 02:35:58 For class 02:36:14 Sgeo: Can't you just call out to ftp(1) 02:36:16 Too lazy to just grab the files, run the program locally, then upload the result 02:36:29 Dude, don't they have ssh 02:36:41 That's not to my professor's server 02:37:01 Anyway, write a shell script using ftp(1) 02:37:09 Don't want to use bash 02:37:13 Tough 02:37:20 Deal with System.Process' baroque interface then 02:37:56 Or I could attempt to force the list of this thing 02:38:01 That should work 02:38:09 -!- DCliche has joined. 02:38:59 This library looks 100000x more complicated than just using ftp(1). 02:39:19 I just threw in a putStrLn, and all is good 02:41:52 -!- Klisz has quit (Ping timeout: 252 seconds). 02:42:02 Uh, my file got cut off 02:42:08 Whatever, just a trivial bit at the end 02:42:10 Weird though 02:44:23 Why is my file getting cut off? 02:45:21 I don't know, let me get out the oracle of I Haven't Seen Your Fucking Code. 02:45:37 It says you forgot to frobnicate the beeswax. 02:45:53 http://esoteric.voxelperfect.net/wiki/Batman_Wonder_Woman_Relationship 02:45:59 \u00D8 � \u00D8 \u00AA \u00D8 � \u00D8 � \u00D8 \u00A1\u00D9 \"\u00D8 � \u00D9 ... \u00D8 � \u00D8 � \u00D8 � \u00D8 \u00AA \u00D8 � \u00D8 \u00AA \u00D9\u0160 \u00D9 .. 02:45:59 \u00D9 � \u00D9 ... \u00D8 � \u00D8 � \u00D8 � \u00D8 � \u00D8 � \u00D9\" \u00D8 � \u00D8 � \u00D9 ... \u00D8 � \u00D8 � \u00D8 � \u00D9 \"\u00D8 � \u00D8 � \u00D9 \"\u00D8� \u00D9\" \u00D9�\u00D9 � \u00D9 � \u00D9�\u00D8 � \u00D9 � \u00D8 � \u00D8 � \u00D8 \u00AA \u00D9 .. 02:48:04 ? 02:48:19 the contents of that stellar spam page 02:48:38 LOL 02:48:39 Printing the result of putlines made it work 02:48:43 I hate this library 02:49:02 That bot is stupid 02:49:17 Success! 02:49:42 "Autism Mercury Chat" 02:49:45 External links 02:49:46 Wikipedia free odessa personals datingmegafone gay dating numberkansas gay personalsdivorce and personal growth relationshipsyahoo chat listingsthai single datingneta chatballas and bryan relationship 02:51:19 yeah only idiots believe in autism mercury. 02:51:48 mercury, god of autism 02:52:08 dude, my friend got vaccinated and caught autism 02:52:15 never was the same after that 02:52:21 Now I have to leave the world of Haskell and start writing PHP :( 02:52:23 * elliott caught autism in a light breeze. 02:52:28 It's in the air. 02:52:30 elliott: wear one of those masks 02:52:32 Sgeo: aww 02:53:05 copumpkin: It's too late now! They haven't yet found the cure which flips the "autism" bit in the Thinking Lobe of the brain to 0. 02:58:18 well they can detect alzheimer from blood tests now, it can only be a matter of time 02:59:04 also, it think the phrase "the cure which flips the "autism" bit in the Thinking Lobe of the brain to 0" is a sign of autism all by itself. 02:59:07 *i 02:59:12 oerjan: Alzheimer's is actually a trit. The problem is flipping it to 0 instead of 3, sometimes referred to as "super Alzheimer's". 02:59:18 Also, I think it may be a sign of a "joke". 02:59:44 yeah bad humor is also a sign of alzheimer. oh wait. and also, i meant autism. 03:00:00 Perhaps even a sign of ""satirising"" the ""notion"" of ""a"" """cure""" to """"""""""autism"""""""""" "!!!!!!!" 03:00:04 > fix show 03:00:05 "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\... 03:00:13 > fix autism 03:00:14 Not in scope: `autism' 03:00:54 > fix pmukt 03:00:54 Not in scope: `pmukt' 03:00:55 erm 03:00:57 > fix pmult 03:00:58 Not in scope: `pmult' 03:00:59 > fix ("autism":) 03:01:00 ["autism","autism","autism","autism","autism","autism","autism","autism","a... 03:01:01 Wait, no 03:01:08 > unwords $ fix ("autism":) 03:01:09 "autism autism autism autism autism autism autism autism autism autism auti... 03:01:16 Too much autism! 03:01:21 > unwords$fix("autism":) 03:01:22 "autism autism autism autism autism autism autism autism autism autism auti... 03:01:23 Better? 03:01:40 @hoogle Monoid m => [m] -> m 03:01:40 Data.Monoid mconcat :: Monoid a => [a] -> a 03:01:41 Prelude head :: [a] -> a 03:01:41 Data.List head :: [a] -> a 03:02:03 * MDude 's head explodes from elliot claiming a trit can be set to 3 03:02:05 there should be a function like mconcat, except which use binary splitup 03:02:05 oerjan: fold 03:02:10 from Data.Foldable 03:02:20 i don't think that's binary. 03:02:22 MDude: It's the brain, man. You can't explain the brain!!! 03:02:26 *uses 03:02:31 oerjan: i wrote that before you said that 03:02:34 what do you mean by binary splitup? 03:02:46 you can certainly write a valid fold that e.g. traverses both branches of a binary tree in parallel 03:02:54 f.e. 03:02:58 and other similar tricks, by the monoid laws 03:03:25 oerjan: also mconcat is a class member of Monoid, so... 03:03:31 elliott: well it was while i was doing modular ^ earlier 03:03:54 elliott: well the thing is it would be nice to be able to it with lists, and also without constructing a tree 03:04:18 oerjan: um but you can't really split a list in two and /gain/ efficiency 03:04:26 since you don't know where to split until you reach the end 03:04:45 ^ is essentially (foldMap Product .) . replicate 03:04:51 heh 03:05:09 elliott: um you can collect in twos. i've written such functions before 03:05:12 who put the derp in the herpa-derpa-derp? 03:05:22 oerjan: then i don't know what you are trying to say 03:08:36 -!- kallisti has joined. 03:08:36 -!- kallisti has quit (Changing host). 03:08:36 -!- kallisti has joined. 03:08:55 hai 03:09:11 oerjan: maybe if you gave an implementation :P 03:10:10 > let biFold f [x] = x; biFold f l = biFold f (pair l) where pair (x1:x2:xs) = f x1 x2:pair xs; pair l = l in biFold (*) [1..10000] 03:10:11 284625968091705451890641321211986889014805140170279923079417999427441134000... 03:10:19 > product [1..10000] 03:10:20 284625968091705451890641321211986889014805140170279923079417999427441134000... 03:10:23 > product [1..100000] 03:10:27 mueval-core: Time limit exceeded 03:10:29 > product [1..100000] 03:10:30 oic 03:10:33 mueval-core: Time limit exceeded 03:10:36 oops 03:10:41 > product [1..50000] 03:10:45 334732050959714483691547609407148647791277322381045480773010032199016802214... 03:10:53 gah 03:11:07 > let biFold f [x] = x; biFold f l = biFold f (pair l) where pair (x1:x2:xs) = f x1 x2:pair xs; pair l = l in biFold (*) [1..50000] 03:11:08 334732050959714483691547609407148647791277322381045480773010032199016802214... 03:11:20 > product [1..100000] 03:11:24 mueval-core: Time limit exceeded 03:11:28 > let biFold f [x] = x; biFold f l = biFold f (pair l) where pair (x1:x2:xs) = f x1 x2:pair xs; pair l = l in biFold (*) [1..100000] 03:11:29 282422940796034787429342157802453551847749492609122485057891808654297795090... 03:11:33 there it worked 03:12:10 hm i guess that's not exactly what ^ needs, though 03:12:46 that's actually a different function which could also be done generically 03:12:59 (and in some way is, but you need a dummy Num instance) 03:18:46 Some functions should be changed from Monad to Applicative, such as sequence 03:19:01 zzo38: Strongly agree. 03:20:54 there's sequenceA 03:21:26 There is no sequenceA in Control.Applicative 03:21:31 Data.Traversable 03:21:39 because it applies to all kinds of structures 03:22:08 I think guard should also be Alternative instead of MonadPlus, and so on 03:23:13 -!- Darth_Cliche has joined. 03:23:35 Welp, who votes I reinstall everything 03:26:30 -!- DCliche has quit (Ping timeout: 240 seconds). 03:43:01 I vote you read Fine Structure 03:43:06 And watch Puella Magi Madoka Magica 03:43:12 And read Homestuck... oh wait 03:44:21 > take 10 $ reverse $ show $ product [1..50000] 03:44:25 "0000000000" 03:44:42 Madoka-Kaname, do you vote that elliott watch Puella Magi Madoka Magica? 03:44:51 I dunno! 03:44:56 -!- elliott has quit (Remote host closed the connection). 03:46:14 I haven't seen it, so I can't give such a suggestion. 03:52:11 -!- elliott has joined. 03:52:47 I wonder why this connection is so unreliable lately. 03:53:48 mgnets. 03:54:05 they also stole my a. 03:54:05 wat 03:54:27 i know for a fact that magnets are bad for computers. 03:54:50 Magnets are great for computers. 03:54:50 "trust me, I'm a mathematician" 03:55:13 Who's the mathematician here? 03:55:33 no no, i lost nearly all the games for our first computer because of my stupid cousing playing with a magnet. 03:55:46 *-g 03:55:59 oerjan: Just imagine if magnets stopped working, though. 03:56:07 shachaf: oerjan has a "Ph.D." in "mathematics". 03:56:08 oerjan: Your computer wouldn't be able to read *any* of the games! 03:56:18 If you know what I mean. 03:56:25 What I mean is that oerjan has a Ph.D. in mathematics. 03:56:37 Why is there no instance (Enum x) => Enum (Product x) 03:56:38 elliott: He has one, or he is one? 03:56:47 wow, i would never have guessed. 03:56:48 shachaf: That's for you to decide and me to find out. 03:56:56 I decide that he is one. 03:57:18 Trust him, he's a doctor (of philosphy). 03:57:39 * elliott finds out. 03:57:40 zzo38: i don't think those Monoid wrappers are really intended to be used as independent data types 03:58:05 just for passing to Data.Monoid functions, which don't care about Enum 03:58:23 oh and Foldable. 03:58:36 oerjan: well it makes sense to at least give them Functor instances 03:58:48 Applicative too 03:59:15 Monad, while you're at it. 04:00:13 shachaf: That makes... slightly less sense. Although Applicative is questionable too. 04:00:29 Product (a -> b) is "interesting" if you don't have one of them fancy Num (->) instances. 04:00:50 elliott: I wasn't the one who brought up "sense". 04:06:27 -!- oerjan has quit (Remote host closed the connection). 04:07:02 -!- oerjan has joined. 04:12:05 Trust him, he's a doctor (of philosphy). // Then he IS a D.Ph., he HAS a Ph.D. 04:12:39 technically i have a "Ph.D", aka Dr. Scient. 04:12:42 Gregor: Doctor of Philosophy, abbreviated as Ph.D., PhD, D.Phil., or DPhil 04:13:33 pikhq_: Hmm, my torrent client does indeed record a 16 meg upload of random. 04:13:46 5 days ago, apparently. 04:13:47 -!- salisbury has joined. 04:13:54 By the way, did I mention how there's currently a warrant for my arrest in Finland? 04:14:46 `welcome salisbury 04:14:46 shachaf: Seriously? 04:14:48 salisbury: 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 04:15:05 hey thanks 04:15:05 elliott: Yep. 04:15:12 As of Dec 15. 04:15:15 shachaf: I think I'm going to like this channel 04:15:18 shachaf: Doesn't matter, I hear Finland is very depressing and a bit of a gulag. 04:15:39 shachaf: Did you smile. 04:15:48 Gregor: It's a nice place, man. Lots of lakes. 04:15:49 You should know never to smile in Finland. 04:15:54 salisbury: You can thank for the welcome, but it's there to scare away people who come in looking for astral projection 04:15:56 -!- kallisti has quit (Quit: Lost terminal). 04:16:05 Gulakes(ag). 04:16:19 elliott: They sent me a booklet about my exciting future as a Finnish soldier, and a bunch of the people in it were smiling! 04:16:29 elliott: Note: I tried to put a tongue smiley on my last line and my IRC client removed it. I'm becoming less smiley-dependent already! 04:16:30 Yes. We have to make sure they're *determined* to stay on the path before revealing things like THAT. 04:16:44 astral projection? 04:16:50 Gregor: Somehow the sentence loses nothing for it. 04:16:57 elliott: Exactly! 04:17:10 salisbury: some people are confused and think esoteric means anything but programming languages and also what happens in this channel 04:17:10 salisbury: http://en.wikipedia.org/wiki/Esotericism is relevant :p 04:17:21 It is NOT relevant to this channel though >_> 04:17:34 Well, it's about as relevant as what we usually talk about. 04:17:36 But: less interesting. 04:18:50 shachaf: So why do they have a warrant for your arrest? 04:19:04 Did they draft you or something? I hear Finland does that because it's very depressing and a bit of a gulag. 04:19:10 elliott: They did draft me. 04:19:18 That's because they weren't aware I was a citizen of any other countries. 04:19:23 X-D 04:19:24 (Which I am. Two others.) 04:19:40 You just need to get drafted simultaneously in those ones too. 04:19:40 They draft everyone. I assume you're an expatriot then? Also I thought it didn't matter, they drafted all citizens regardless. 04:19:46 A lot of things are in this channel. The main topic is esoteric computer programming but a lot of other things are discussed, which might, in some cases, have a small amount to do with such things. But if you have message about esoteric programming then please do so. 04:19:56 Gregor: Expatriot :D 04:19:57 Gregor: They don't draft you if you're a US citizen living in the US. 04:20:23 elliott: I CHOOSE TO STICK WITH MY TYPO. 04:20:23 * shachaf also enjoys "expatriot". 04:20:27 elliott: HE IS NO LONGER A PATRIOT. 04:20:41 -!- itidus21 has quit (Read error: Connection reset by peer). 04:25:05 Wow, there are a lot of programming languages I had no clue about.. 04:25:38 most are bad 04:26:31 All are bad. 04:26:36 I see someone put Lisp on there under its development code-name, Parenthesis Hell. 04:27:02 salisbury: Don't be silly, people wrote m-expressions back then. 04:27:13 (Well, okay, they *didn't* and that's why m-exprs never took off.) 04:27:14 bracket hell 04:27:40 Did you hear the theory of how the progress of computer programming involves moving parentheses further and further to the right? 04:28:12 No, but I'm sure you're about to tell us. 04:28:21 The esoteric programming involves a few experimental things, or themed, or joke, or whatever. Instead of being constraint to the purpose of programming, it can be not constrainted to actual use. Some esoteric programming can even be uncomputable 04:28:33 elliott: If you'd said "yes", I wouldn't've. 04:28:44 shachaf: And I wouldn't have been sure! 04:29:02 Allow me be the first to say, "um, DUH?". 04:29:07 *me to 04:29:16 The general idea goes that first you had (f x y); then that turned into f(x, y); and then with OO that turned into x.f(y). 04:29:27 There was more to the theory but I've forgotten it. 04:29:40 x.f y () 04:29:53 * elliott *slightly* suspects f(x, y) predates (f x y). :p 04:29:55 x..............fy)( 04:30:04 elliott: Be quiet. 04:30:13 )x.f.y( 04:30:14 Plagiarist. 04:30:19 I'm speaking really quietly, your IRC client is just amplifying it. 04:30:26 )(x)(f)(y)( 04:30:34 elliott: Too many capital letters. 04:31:18 Maybe I should just bite the bullet and die of something-or-other poisoning; i.e. actually boot this installation non-CD. 04:32:50 elliott: What's non-CD about it? 04:32:58 Is it compact? Is it a disc? 04:33:24 Well, it's not a disc, it's not optical, it's not all *that* compact, and it's not going into a CD drive. 04:33:52 elliott: Is it more compact than a CD? 04:34:02 Fine, it's not a disc. Is it a disk? 04:34:09 No. And yes. 04:34:43 disq 04:35:08 we must therefore invent a language in which all the parentheses are put at the end, after the rest of the code. 04:35:48 , name it after shachaf 04:35:57 oerjan: f g h x y z (((,),,)) 04:36:04 erm 04:36:05 oerjan: f g h x y z (((,),)) 04:36:09 == f(g(h(x,y),z)) 04:36:11 oh, lambdabot is in here too 04:36:15 elliott: sorry, no commas allowed after parentheses 04:36:27 oerjan: ok do currying then 04:36:42 > putStrLn "hey, what's up man?" 04:36:43 04:36:46 .. 04:36:55 oerjan: oh that breaks down a bit 04:36:56 !haskell putStrLn "hey, what's up man?" 04:36:59 hey, what's up man? 04:37:00 salisbury: lambdabot doesn't allow IO. 04:37:54 shachaf: So apparently the GHC devs fixed that type family bug by making the type-signatureless function fail to compile. 04:37:57 > unsafePerformIO $ putStrLn " " -- You have to know how to do it. 04:37:58 04:38:02 elliott: Makes sense. 04:38:07 shachaf: It does? 04:38:10 f g h x y z (((()())())) 04:38:12 > unsafePerformIO (putStrLn "hey, whats up man") 04:38:13 04:38:16 elliott: Yes. 04:38:20 * elliott would generally expect "f x = g x" to always work. 04:38:24 Assuming g is a function. 04:38:28 Which it unambiguously is, here. 04:38:40 elliott: Is there no way to break it with Rank-N types or something? 04:38:44 Or, for the even simpler case, that "y = x" would always work. 04:38:47 salisbury: lambdabot is subtly hinting that you're trying to print the wrong thing. 04:38:51 Where x has any type, I mean come on. 04:38:58 I doubt you can break _that_ with rank-N types. 04:39:05 elliott: It's, like, linear types, man. 04:39:20 > unsafePerformIO $ text "Testing" 04:39:22 Testing 04:39:29 !! 04:39:40 is unsafeperformio = id 04:39:53 ?? 04:40:27 shachaf is doing this thing called ``trolling''. 04:40:33 elliott: No I'm not! 04:40:51 I'll admit, he's got me on this one 04:41:04 :t unsafePerformIO 04:41:05 forall a. a -> a 04:41:10 I shouldn't have done that, I think I gave it away 04:41:10 @undefine 04:41:15 > unsafePerformIO $ text "hey, what's up hermaphrodite" 04:41:16 Not in scope: `unsafePerformIO' 04:41:20 @let unsafePerformIO = undefined 04:41:20 :2:0: 04:41:20 Multiple declarations of `L.unsafePerformIO' 04:41:20 Declared... 04:41:26 shachaf: Oi. 04:41:26 Too late. :-( 04:41:48 > text "Lambdabot prints Docs as you see" 04:41:49 Lambdabot prints Docs as you see 04:41:49 :t text 04:41:50 String -> Doc 04:42:01 Sgeo you magic 04:42:09 My unsafePerformIO was just an attempt to continue the trolling 04:42:25 > text "a\nb" 04:42:26 a 04:42:26 b 04:42:41 > text "\n" 04:42:42 Terminated 04:42:44 > text "\n" 04:42:44 Terminated 04:42:48 > text "a\n\nb" 04:42:49 a 04:42:49 04:42:49 b 04:42:52 > text "\nbluh" 04:42:53 bluh 04:43:36 > text $ interleave (repeat 'a') (repeat '\n') 04:43:40 mueval-core: Time limit exceeded 04:43:42 :0 04:43:59 > var $ interleave (repeat 'a') (repeat '\n') 04:44:00 a 04:44:00 a 04:44:00 a 04:44:00 a 04:44:00 a 04:44:02 [21 @more lines] 04:45:11 @more 04:45:11 a 04:45:11 a 04:45:11 a 04:45:11 a 04:45:11 a 04:45:13 [16 @more lines] 04:45:15 @more 04:45:15 a 04:45:17 a 04:45:19 a 04:45:19 How unpredictable! 04:45:21 a 04:45:23 a 04:45:25 [11 @more lines] 04:45:27 @more 04:45:27 a 04:45:29 a 04:45:31 a 04:45:33 a 04:45:35 a 04:45:37 [6 @more lines] 04:45:39 @more 04:45:40 a 04:45:41 a 04:45:43 a 04:45:45 a 04:45:47 a 04:45:48 Let me guess? More 'a's? 04:45:49 ... 04:45:55 The surprising end! 04:46:11 I have such perfectly bad timing 04:46:35 oerjan: Nice trick to get an infinite Doc, though 04:46:42 Since widths are per-unit-of-text-thing 04:47:18 :t var 04:47:19 forall a. String -> Sym a 04:47:31 [elliott@dinky ~]$ pacman -Qe | wc -l 04:47:31 218 04:47:34 That's not many, right??? 04:47:38 oerjan: oh :P 04:47:42 oerjan: well i think you could do it 04:47:45 with the vertical layout operator 04:47:55 if you say so 04:47:55 :t ($$) 04:47:56 Doc -> Doc -> Doc 04:48:35 > foldl1 ($$) (repeat 'a') 04:48:35 Couldn't match expected type `Text.PrettyPrint.HughesPJ.Doc' 04:48:36 agains... 04:48:38 oop 04:48:51 > foldl1 ($$) (repeat (text "a")) 04:48:56 mueval-core: Time limit exceeded 04:49:04 creys 04:49:11 monqy: foldl1 never is lazy 04:49:11 crey mainframe :( 04:49:14 oh 04:49:15 :( 04:49:19 oerjan: er are you sure 04:49:23 > foldr1 ($$) (repeat (text "a")) 04:49:24 > foldl1 f (repeat x) 04:49:28 oh 04:49:28 mueval-core: Time limit exceeded 04:49:28 mueval-core: Time limit exceeded 04:49:29 foldl 04:49:29 rite 04:49:35 not that it helped 04:49:38 there is an empty :: Doc, btw :P 04:49:40 or mempty :: Doc 04:49:47 > foldr1 ($$) (repeat (text "a")) 04:49:51 mueval-core: Time limit exceeded 04:50:00 it doesn't look like it helps, anyway 04:50:38 > foldr1 ($$) (replicate 10 (text "a")) 04:50:39 hmm, 188 in 19 04:50:41 a 04:50:41 a 04:50:41 a 04:50:41 a 04:50:41 a 04:50:43 [5 @more lines] 04:50:57 yay 04:51:01 oh 04:51:02 nay 04:51:03 @more 04:51:03 a 04:51:03 a 04:51:03 a 04:51:03 a 04:51:03 a 04:51:11 :t ($$) 04:51:14 Doc -> Doc -> Doc 04:51:37 elliott, update 04:51:44 oerjan: http://www.reddit.com/r/haskell/comments/nfyvy/instance_monad_ziplist_where/ 04:56:28 I think I crushed oerjan. 04:56:44 rip 04:56:55 why? 04:57:16 copumpkin: he's been maintaining that ZipList is a monad for ages now :) 04:57:22 well because i have several times claimed that ZipList _can_ be a Monad 04:57:29 it is if you have constraints on the list 04:57:33 no shit 04:57:42 i don't think that's needed. 04:57:56 oerjan: http://stackoverflow.com/questions/6463058/help-on-writing-the-colist-monad-exercise-from-an-idioms-intro-paper seems to have a lot more info, including some from McBride 04:58:09 i'm already on that page. 04:58:12 it is needed 04:58:35 copumpkin: well afaik nobody has actually proved it, at least not publically 04:58:41 and oerjan has a definition he think works 04:58:56 pure produces an infinite list? 04:59:00 I guess it already did 04:59:02 -!- augur has quit (Remote host closed the connection). 04:59:10 copumpkin: yes, what use would ziplist be otherwise 04:59:15 f <$> xs <*> ys 04:59:30 how do you write join if you have no guarantee the intermediate list contains anything at all? 04:59:48 i can dig up oerjan's definition if you want 04:59:49 `log zjoin 04:59:53 it satisfied the easier monad laws 04:59:54 oerjan: oh, I see 05:00:04 cthulhu does too 05:00:08 wat 05:00:17 2011-11-30.txt:10:01:44: oerjan: yes, I am sure that zjoin works fine in the theory you have used to create it :P 05:00:22 argh 05:00:24 zjoin = ZipList . diag . scanl1 (zipWith (flip const)) . map (getZipList) . getZipList where diag = concat . takeWhile (not . null) . map (take 1) . foldr (\x xs -> x:map (drop 1) xs) [] 05:00:28 copumpkin: there you go 05:00:29 thanks 05:00:42 @let zjoin = ZipList . diag . scanl1 (zipWith (flip const)) . map (getZipList) . getZipList where diag = concat . takeWhile (not . null) . map (take 1) . foldr (\x xs -> x:map (drop 1) xs) [] 05:00:44 Defined. 05:00:48 :t zjoin 05:00:49 forall a. ZipList (ZipList a) -> ZipList a 05:01:00 TEST 1: passed 05:01:04 XD 05:01:12 * elliott thinks quickcheck could be useful here. 05:01:35 > getZipList (zjoin (ZipList [ZipList [], ZipList [1]])) 05:01:39 mueval-core: Time limit exceeded 05:01:43 lol 05:01:46 > getZipList (zjoin (ZipList [ZipList [], ZipList [1]])) 05:01:49 mueval-core: Time limit exceeded 05:01:53 wat 05:02:07 Prelude Control.Applicative> let zjoin = ZipList . diag . scanl1 (zipWith (flip const)) . map (getZipList) . getZipList where diag = concat . takeWhile (not . null) . map (take 1) . foldr (\x xs -> x:map (drop 1) xs) [] 05:02:08 Prelude Control.Applicative> getZipList (zjoin (ZipList [ZipList [], ZipList [1]])) 05:02:08 [] 05:02:09 yw 05:02:13 bit of a hard computation 05:02:38 @check \x -> True 05:02:38 Not in scope: `myquickcheck'Not in scope: data constructor `True'Not in sco... 05:02:44 :D 05:03:07 Cale broke something when reinstalling lambdabot's dependencies, I guess 05:03:20 > getZipList (zjoin (ZipList [ZipList [], ZipList [1]])) -- how does this manage to break lambdabot 05:03:22 [] 05:03:26 ah. 05:04:10 @check is this fixed yet 05:04:10 Not in scope: `myquickcheck'Not in scope: `is'Not in scope: `this'Not in sc... 05:04:13 OH GOOD 05:04:14 @check ) 05:04:15 Unbalanced parentheses 05:04:21 @check ")" 05:04:21 Not in scope: `myquickcheck'Not in scope: `$' 05:04:24 X-D 05:05:29 @check ")" where x$y=x y 05:05:30 Parse error at "where" (column 5) 05:06:01 It probably parses your expression to check it's valid first. 05:11:05 pikhq_: Can you dd this ISO file to my USB drive for me? 05:23:00 -!- augur has joined. 05:24:48 so afaiu the monad law which is in doubt is zjoin . fmap zjoin = zjoin . zjoin 05:25:13 *sigh* 05:27:49 If all lists are of same length, then you can join because it is like (->) monad 05:28:36 oerjan: sounds difficult :P 05:28:41 to prove, I mean 05:28:50 when ever I think Im getting my mind around Haskell, someone goes any types something like let zjoin = ZipList . diag . scanl1 (zipWith (flip const)) . map (getZipList) . getZipList where diag = concat . takeWhile (not . null) . map (take 1) . foldr (\x xs -> x:map (drop 1) xs) [] 05:29:42 and* 05:29:55 elliott: well i _think_ that the nth element of each of those lists only exists when the (x,y,z)'th element of the original matrix exists for all x,y,z <= m, and when it does it's of course the (m,m,m)'th element. 05:30:10 s/only exists/exists precisely when/ 05:31:42 -!- MDude has changed nick to MSleep. 05:32:00 er 05:32:11 s/\/n/g 05:32:23 salisbury: Don't worry, oerjan is just terrible at Haskell. 05:32:51 D: 05:33:09 (By "terrible" I of course mean "amazing".) 05:33:15 (by "amazing" I mean terrible) 05:33:18 (it's code) 05:33:20 (secret code) 05:33:35 s/terribly amazing/amazingly terrible 05:33:47 I don't even know what "s/something/something else" means 05:34:25 salisbury: it's vi substitution command 05:34:30 I'm guessing it is not a perl regex 05:34:35 You forgot the last /. 05:34:45 It has the same semantics as Perl s///, it's just fuzzier. :p 05:34:49 oerjan: *ed 05:34:56 ah. 05:35:11 salisbury, do you understand chains of function composition? 05:35:15 don't count on me using consistent regex syntax as well 05:35:20 yes 05:37:34 I just don't really understand what that particular chain is supposed to accomplish 05:38:51 I haven't looked it closely enough 05:39:03 I know more than most beginners, I think, but I'm no expert 05:39:44 remember that time when you wrote cat in haskellg 05:39:46 good times, good time 05:39:47 s 05:39:50 05:40:14 05:40:30 Let me paste my recent code 05:40:33 pikhq_: Does C seriously not guarantee anything about float/double semantics 05:40:48 Not that it's not bad 05:41:01 And some of the comments are obsolete 05:41:09 salisbury: well the diag is taking the diagonal of a list of lists. the scanl1 (zipWith (flip const)) is to fix a problem with the monad laws for ZipList if you do it naively. 05:41:22 *diag function 05:41:30 oerjan: the (>>=) in the reddit post I linked looked like the (>>=) for your zjoin 05:41:31 but I'm not sure 05:42:13 http://hpaste.org/55359 05:42:56 I'm aware that one of the "Dealing with Lazy I/O" lines is probably unnecessary 05:42:59 as is the return () 05:43:58 The "huge trick"? 05:44:01 I was pretending to myself that I might show this to non-Haskellers at some point 05:44:10 "main should always be IO ()" False. 05:44:29 elliott, there's something on the wiki with a function that will read a marked comment in the source 05:44:34 (print =<<) $ putlines ftpConn "populate.php" . lines . buildPHP $ files -- print in the hopes that it forces the entire thing to go through 05:44:37 s/$/./ 05:44:47 Sgeo: Uhh, Haskell is a compiled language. 05:45:12 Nevertheless 05:45:13 http://www.haskell.org/haskellwiki/Poor_man's_here_document 05:45:15 Sgeo: Also theg enerated code has a massive security hole. 05:45:17 *the generated 05:45:36 Sgeo: And that page should be deleted, it's completely unjustifiable to do that. 05:46:13 elliott, hmm? Well, the page is visited once then deleted 05:46:15 But what is it? 05:46:32 insertFile file = "$query = \"INSERT INTO sg_songs (path) VALUES ('" ++ file ++ "')\";\n" ++ performQuery 05:46:40 Oh 05:46:41 -!- oerjan has quit (Remote host closed the connection). 05:47:19 http://hpaste.org/55354 ;; the difference is the difference between fmap and (=<<). 05:47:36 elliott, #haskell helped me with that earlier 05:48:48 elliott, in fairness wrt the SQL injection, it's a one-off script that could only have been exploited by someone knowing that I was generating the page, then visiting the generated page before I had a chance to vet it then run it 05:48:57 And who had access to my FTP 05:49:09 Sgeo: Yes, "it's not a security hole until it bites me" is a common sentiment. 05:49:10 But that's how these things start, isn't it? 05:49:55 Does anyone know a convenient way to sort a list of human file sizes? 05:49:59 i.e. 1.9M vs. 124K. 05:50:41 Is the _ <- stuff ok or bad? 05:50:53 It's fine. You can use Control.Monad.void if you want. 05:51:08 That also lets you reduce do { _ <- m; return () } -> void m 05:51:42 It could use (() <$ m) for any functors 05:55:02 elliott, fun fact, that hope that the print would force the entire thing to go through, instead of cutting stuff off: It worked. 05:55:13 I do not like this library. 05:55:31 @hoogle a -> IO () 05:55:33 Control.Concurrent.SampleVar writeSampleVar :: SampleVar a -> a -> IO () 05:55:33 Control.Concurrent.MVar putMVar :: MVar a -> a -> IO () 05:55:33 Data.IORef writeIORef :: IORef a -> a -> IO () 05:55:44 Someone showed me a function that would do similar 05:55:48 @hoogle evaluate 05:55:49 Control.Exception.Base evaluate :: a -> IO a 05:55:49 Control.Exception evaluate :: a -> IO a 05:55:49 Control.OldException evaluate :: a -> IO a 05:58:49 Sgeo: ITT: deepseq 06:00:00 elliott, I think I'd have to combine deepseq with evaluate, otherwise the deepseqing itself won't be evaluated, I think 06:00:29 Or is fully evaluated later than I want 06:00:30 xs `deepseq` return (), but that's just the same as evaluate xs, modulo exceptions. 06:00:49 erm 06:00:52 *evaluate (deepseq xs) 06:00:58 erm 06:00:59 *evaluate (rnf xs) 06:01:01 dur 06:01:07 where deepseq a b = rnf a `seq` b 06:01:23 evaluate (force xs)? 06:01:27 What is force 06:01:39 (evaluate (rnf a) is equal to (a `seq` return a) >>= return, not (a `seq` return a). If you didn't jump, you don't know Haskell yet.) 06:01:42 Erm 06:01:46 (evaluate (rnf a) is equal to (rnf a `seq` return a) >>= return, not (rnf a `seq` return a). If you didn't jump, you don't know Haskell yet.) 06:01:49 Blah blah blah 06:03:03 rnf returns a () 06:03:08 wow, returns is a bad word 06:03:15 rnf :: a -> () 06:03:19 OK fine 06:03:21 (ok, not quite) 06:03:30 (evaluate (rnf a) is equal to (rnf a `seq` return ()) >>= return, not (rnf a `seq` return ()). If you didn't jump, you don't know Haskell yet.) 06:03:46 "jump"? 06:03:47 AKA evaluate (rnf a) is equal to (deepseq a (return ()) >>= return), not (deepseq a (return ())).) 06:03:52 Sgeo: Yep. 06:04:00 There is a very obvious, very terrible thing there, and you are completely missing it. 06:04:04 If by that, you mean wondering what the difference is 06:04:13 There is no difference; that's one of the monad laws. 06:04:17 m >>= return = m. 06:05:04 I was more confused than startled 06:07:46 > (undefined >>= return :: a -> b) `seq` 1 06:07:46 1 06:09:47 elliott, so why is evaluate (rnf a) one but not the other of things that are equivalent? 06:10:57 > let eval x = x `seq` return x in eval undefined `seq` () 06:10:58 Ambiguous type variable `m' in the constraint: 06:10:58 `GHC.Base.Monad m' 06:10:58 a... 06:11:03 >_< 06:11:07 > let eval :: a -> IO a; eval x = x `seq` return x in eval undefined `seq` () 06:11:08 *Exception: Prelude.undefined 06:11:13 > let eval :: a -> IO a; eval x = (x `seq` return x) >>= return in eval undefined `seq` () 06:11:14 () 06:11:43 Hint: seq is the only thing that lets you distinguish (const _|_) from _|_, and in GHC, IO is implemented with a function inside. 06:13:40 ok, hoogle doesn't let me do _|_.. 06:13:53 salisbury, _|_ is another name for bottom 06:13:55 salisbury: _|_ is any bottom value. 06:14:01 e.g. undefined, or fix id, or error "hi". 06:14:04 And you can use error or undefined as a convenient way to make bottom 06:14:22 I have a function (x -> Natural) for a bounded enumeration x and want to make list of all functions of the same type that their output does not exceed the output of the original function for each input. 06:14:25 Does the runtime detect fix id as <>? 06:14:55 Sgeo: I believe so. 06:15:01 fix id 06:15:06 let x = id x in x 06:15:12 let x = x in x 06:15:17 That's a pretty obvious BLACKHOLEy type thing. 06:15:22 I don't know the actual terminology. 06:15:34 I think the threaded runtime doesn't detect <> at all, though. 06:16:09 oh no.. I use that 06:16:11 How can I make a function to make such a list? 06:16:34 salisbury: ? 06:16:49 I use the threaded runtime 06:17:08 salisbury: You don't care about <> detection. 06:17:10 It's just a cheap trick. 06:17:12 salisbury, so you lose a minor bragging point 06:17:17 over other languages 06:17:22 Not a big deal, I think 06:29:36 elliott: It does. 06:29:42 Oh, okay. 06:29:45 elliott: But only on GC, or something like that. 06:29:49 Heh. 06:29:55 Whereas the non-threaded one detects it immediately. 06:29:56 I don't think fix id allocates. 06:31:19 elliott: Does that matter? 06:31:27 Well, no. But that's what we were talking about. 06:31:29 When the thread tries to evaluate the BLACKHOLE, it'lll get suspended. 06:33:00 GHC GCs while not doing anything? 06:33:39 That's the best time to GC, obviously. :-) 06:33:56 kmc might know the details of this. 06:37:43 I'm disappointed in you all for not making me boot this installation media. 06:38:50 elliott: I'm disappointed in y'all for saying "this ... media". 06:38:58 If it wasn't for this annoying grammatical nitpick I would've done it. 06:39:19 Hmm. 06:39:34 Installation media is a set of {installation CD, installation HD, ...}. 06:39:41 Yes, you're right, it should be "medium". 06:39:43 *medium 06:39:45 (And now for elliott to comment on "wasn't".) 06:39:54 Not "y'all"? 06:40:05 No, "y'all" is an abbreviation for "you all". 06:40:10 It's an accepted one. 06:40:13 I'm one person, shachaf. 06:40:15 Usually. 06:40:23 omfgwhat 06:40:25 elliott: This is where we disagree. 06:40:32 black holes and revelations 06:40:34 Dammit, the elliott cabal has been revealed. 06:40:44 elliott bourbaki 06:40:56 kmc: hi. 06:41:02 hi elliott 06:41:04 helliott 06:41:11 Hi shachaf. Hachaf. 06:41:25 -!- elliott has quit (Quit: shift change for elliott bourbaki). 06:41:26 Bless you, elliott. Blelliott. 06:41:29 That's a fun word. 06:42:33 how come you all talk about haskell all the time 06:42:37 is it the best esoteric language 06:42:59 kmc: #haskell is too full of monad jokes. 06:43:07 what's the best language if im' drunk 06:43:09 This is our escape. 06:43:35 kmc: "I'm drunk". That would be a good keyword for gmail to look for. 06:43:59 WHOA, DUDE. KEYWORD ~ PASSWORD 06:44:02 http://www.sparkfun.com/products/8880 06:44:35 here this should help http://lusorobotica.com/index.php/topic,111.0.html 06:45:11 -!- PiRSquared17 has left. 06:45:15 My head just started seriously hurting. :-( 06:46:13 sux 06:46:53 chemical warfare, chemical warfare, chemical warfare warfare warfare 06:48:27 keep that up and we'll have a Stop IRC Violence Act by this time next month 06:50:06 Do you know what is the best way to make a function that will make a list of all function the output does not exceed the output of the original function for each input that it can be given? 06:50:53 has anyone really been far even as decided to use even go want to do look more like? 06:52:23 kmc: That seems a difficult question that I don't know the answer. 06:52:47 there's no escaping from ohio 06:53:03 -!- elliott has joined. 06:53:13 Look more like what? 06:55:48 -!- Ngevd has joined. 06:58:51 wait where did oerjan go 06:59:01 Hexham 06:59:08 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.). 06:59:11 Where I will now go 06:59:13 -!- Ngevd has quit (Client Quit). 07:00:55 jupiter and beyond the infinite 07:01:30 I have this weird suspicion that kmc isn't entirely sober right now. 07:02:06 it's illegal to be drunk on the internet 07:02:09 we all know that 07:02:15 Yes. 07:02:16 Yes it is. 07:04:53 1 result (0.27 seconds) 07:05:27 It's a well-guarded secret that we all know. 07:09:27 Jupiter is too far away, isn't it? 07:10:17 yes 07:11:01 no actually, if you use the teleport monad 07:11:20 it's undocumented though 07:12:06 >>= :: :: Monad m => m a -> (a -> m b) -> Jupiter 07:12:26 yes, I did mean to type :: twice 07:12:50 The bane of kmc has reached us, even here. 07:13:52 (::) :: Term → Type → Decl 07:14:09 -!- kmc has left ("Leaving"). 07:14:13 -!- kmc has joined. 07:14:30 shachaf, it's your fault really 07:14:48 It is? 07:15:00 you summoned me here 07:15:04 I did? 07:15:12 kmc might know the details of this. 07:15:15 You mean during the BLACKHOLE discussion? 07:15:16 Ah. 07:15:20 You were already in this channel. 07:15:21 the blackest of holes 07:15:25 yeah 07:15:28 i forgot why 07:16:05 Probably to talk about @. 07:16:26 kmc, loop detection in threaded runtime 07:16:38 yeah i dunno how that shit works 07:17:08 elliott, did I just talk to you in another channel? 07:17:18 I have a program to tell you how far away Jupiter is. It is 4.33 units far. 07:17:38 `addquote I have a program to tell you how far away Jupiter is. It is 4.33 units far. 07:17:41 elliott, fun fact: I just confused you with someone else. 07:17:44 767) I have a program to tell you how far away Jupiter is. It is 4.33 units far. 07:17:45 10 parts sugar, 90 parts whiskey 07:17:52 Sgeo: Cool. 07:18:13 "Hearts full of youth / Hearts full of truth / Six parts gin to one part vermouth" 07:19:09 (Distance from the Earth) 07:21:17 Distance from sun is 4.97 07:22:02 * kmc slept through all the lectures but did not cheat on the exams 07:22:34 Average distance from sun is 5.203 07:23:13 Or, at least, this is what it says on the computer. 07:23:15 salisbury doesn't know how to do that thing kmc just did 07:23:52 salisbury also is a chemical pharmacology student and wishes he did comp sci. formally...... 07:24:15 pharmacology?!?!?!? 07:24:21 that's way the fuck better than CS 07:24:47 yeah, but you folks know all this amazing haskell shit 07:24:51 salisbury: /me ... 07:25:01 salisbury: You don't need to be a formal CS student for that. 07:25:04 yeah but you can synthesize novel 5HT subtype-selective receptor agonists 07:25:17 yes 07:25:19 well, 07:25:20 no 07:25:21 but 07:25:24 in theory 07:25:32 plz 07:25:49 salisbury, repeat after me 07:25:55 /me just learned how to /me 07:26:06 * salisbury just learned how to /me 07:26:08 yay 07:26:12 elliott thinks referring to yourself in the third person is just dandy. 07:26:33 elliott: If first -> third, you should second -> first. 07:26:49 Quite. 07:27:06 But also I'm lazy. 07:27:23 kmc, you live in CA? look up alexander shulgin 07:27:29 he lives in the mountains or something 07:27:34 i know who shulgin is ;P 07:27:36 but i don't live in CA 07:28:01 shulgin is basically the man 07:28:03 in this field 07:28:06 but he's pretty old and retired 07:28:34 he has a lab in his garden shed I'm fairly sure 07:28:48 i think much of the research in this area is done by the nichols group at purdue 07:28:54 these days 07:29:49 kmc: Have you considered moving to CA? 07:30:18 shulgin has taken probably 07:30:31 more distinct psychoactive drugs than anyone else in human history 07:30:38 I can compute a lot of other things about planets and sun and moon and so on, not only the distance 07:31:04 shachaf, yes 07:31:17 And even a few asteroids and fixed stars, and even fictitious planets can be computed 07:31:34 there is no interesting research in Canada.. 07:32:00 aaanddd.. I'm transferring into U Toronto.. 07:32:01 salisbury: Are you sure? Have you checked? 07:32:52 at my school the Haskell interest group and the psychedelics / research chemical interest group overlapped significantly.... 07:34:49 I don't even know anyone else who uses Haskell 07:35:06 If you want these informations (including for future and past), you cantell me I can put it into the computer figure out distances and angles and azimuth and whatever else 07:36:28 zzo38 distance from the moon to haley's comet in 1912 07:36:47 in millimeters 07:37:44 O, no, haley's comet is not on here. And distances are only in AU 07:38:05 But angles can be measured in three different ways (radians isn't one of them). 07:38:21 just because it's not on there does not mean its 0 07:38:30 unknown would be more appropriate diction 07:38:55 I didn't say it was 0, I used the letter O not the number 0 07:39:50 I plan I might write a better program later, so I might be able to included haley's comet but probably not in millimeters 07:40:37 *Halley's 07:44:44 I know how to figure out the Chinese New Year, do you know the Chinese New Year? 07:47:45 "I know how to figure out the Chinese New Year" would be a bad name for a band 07:48:06 Then don't name your band that! 07:48:12 i won't 07:50:25 -!- tuubow has joined. 07:52:41 `welcome tuubow 07:52:44 tuubow: 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 07:59:10 or feel free to entertain us with stories of your voyages to other plains of existence 08:01:49 I have a list of 88 constellations including both English and Latin. And abbreviations. 08:02:52 zzo38 what, may I ask, are you doing with all this 08:04:26 Not much usually. The program just happens to have a lot of features. But sometimes I will want to figure out Chinese New Year, or the phase of the moon, or I might just be interested in how all this stuff works 08:04:49 are you just learning programming? 08:05:07 because .. otherwise .. google has 08:05:13 No, and this is not a program I wrote, either. 08:05:22 I have written a lot of programs in the past including computer game and other things. 08:07:45 how about now 08:07:49 Looking in Wikipedia, I can learn, what is prime vertical, what is ecliptic, what is a lunar node, what is zenith, right ascension and declination, and so on. 08:07:59 indeed 08:08:05 salisbury: What about now do you mean? 08:09:39 why do I feel like I'm in a turing test 08:09:58 what programs are you writing now? 08:10:48 I do write some programs now too. Even some computer game program, but other things including Haskell libraries and TeX macro packages, and some other stuff for some people who ask me for specific programs too. 08:12:13 Once I wrote a game for GameBoy. 08:17:37 -!- Ngevd has joined. 08:17:47 hi Ngevd 08:17:49 Hello! 08:18:18 It's surprisingly not slippy outside 08:19:42 not slippy, just dull :P 08:25:28 coppro: How can I get clang to print out every warning option it supports 08:25:36 They're not documented at all, and appear to be distributed throughout the codebase 08:31:55 http://sprunge.us/jaPC 08:32:11 This is what gcc -Wactually-literally-every-warning-that-gcc-supports (apart from -Wsystem-headers) thinks of mcmap. 08:32:37 * elliott decides that -Wtraditional and -Wc++-compat have to go :P 08:32:47 Also -Wpadded. 08:33:42 -Waggregate-return 08:33:42 Warn if any functions that return structures or unions are defined or called. (In languages where you can return an array, this also elicits a warning.) 08:33:44 WHY WOULD THIS BE A WARNING 08:35:11 I think -Wconversion just warns about... every single conversion. 08:35:16 -Wsystem-headers? 08:35:34 Sgeo: Shows you warnings about the code inside system headers you include. 08:35:38 It's a good way to get a few thousand pages of warnings. 08:36:31 What's wrong with Waggregate-return? Don't you need to avoid returning those sorts of things, and return pointers to them instead for some reason? 08:36:49 Why? That requires a heap allocation and later free. 08:36:54 Not only is that really slow, what's the point? 08:37:07 elliott, I didn't think it was possible to aggregate return 08:37:20 Sgeo: Yes, -Wimpossible is certainly likely to exist? 08:38:08 Upon seeing -Waggregate-return, I modified from "impossible" to "bad idea" 08:38:29 That sounds like a suspicious modification. 08:38:42 BRB 08:38:55 There's a -Wtraditional that complains about things that K&R compilers won't like, after all. 08:40:41 I'm more worried about -Wc++-compat 08:41:02 I'm aware that there are things you need to do in C++ that are bad in C 08:41:23 Casting malloc, I thin 08:41:26 think 08:52:50 -!- zzo38 has quit (Remote host closed the connection). 08:56:38 elliott: How do you -Wactually-literally-every-warning-that-gcc-supports? 08:57:49 shachaf: curl http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html | sed 's/
-W\([^<]*\).*/-W\1/p; d' | grep -v -- '-Wno' >warns, manually removing the ones that end with = and nothing after them and the like, then gcc -std=c99 -pedantic $(cat warns) ...; remove the ones it complains about (not in your gcc for whatever reason, don't apply to your language, etc.) until it works. 08:58:06 It's easier than it sounds. 08:58:13 It's also even less useful than you're imagining. 08:58:52 What about -ansi? 08:59:02 Oh, wait. 08:59:08 That doesn't do what I think it does. 09:00:03 That's just -std=c89. 09:00:16 -std=c90 according to my `man ghc`. 09:00:21 Same thing. 09:00:24 (man ghc?) 09:00:36 -pedantic is the one that emits the warnings that the C standard tells it to (it *doesn't* try to emit warnings about non-standard constructs, despite what people think). 09:00:58 It's pedantic because you turn it on to get pedantically-correct behaviour, since the standard mandates printing those diagnostics. 09:01:08 elliott: Don't forget to compiler with optimizations. 09:01:35 shachaf: I just set EXTRACFLAGS to that nonsense; mcmap adds -O3 from the OPTCFLAGS because fizzie is mad. 09:02:12 -!- cswords has joined. 09:02:26 elliott: OK, but that counts as part of the -W flags. 09:02:37 shachaf: Yeah, I know that -O2 improves warning behaviour. 09:03:26 elliott: Also, you can even more exciting -W options if you compile C++. 09:03:34 Options like -Weffc++. 09:03:40 Quite. 09:05:00 C++ is an interesting language. 09:05:06 -!- cswords__ has quit (Ping timeout: 255 seconds). 09:05:07 I'm beginning to appreciate it. 09:05:50 Try not to. 09:06:38 elliott: There's a certain elegance to it. 09:06:52 Play C++ sudoku, it's what I do. 09:07:04 What's that? 09:07:36 You have to implement a functional programming concept in C++; bonus points for using lots of templates; bonus points for using nothing but templates. 09:07:46 Bonus points if it's something Oleg did. 09:07:51 For instance, Maybe. 09:07:58 You might think this is easy, but you can't just use a pointer. 09:08:01 Because you can't have a pointer to a reference. 09:08:32 You actually need a boolean flag, and a char array with size sizeof(T), where T is the template parameter; you have to exploit the fact that you can turn anything into a bunch of chars and back, including references. 09:08:45 Basically it turns C++'s hideous flaws into entertaining intellectual roadblocks. 09:08:50 It's the best game. 09:10:04 (Even more technically, you want a *pointer* to said char array (so you have to wrap it in a templated class/struct), otherwise maybe takes up as much space as T even if it's Nothing.) 09:11:45 -!- Ngevd has quit (Ping timeout: 252 seconds). 09:12:23 Sounds fun. 09:16:50 It is if you're a language lawyer. 09:17:09 * elliott used to be, but was language disbarred. 09:18:20 UPDATE 09:24:12 hi 09:24:32 * Sgeo updates monqy 09:24:38 Wait, is monqy a Homestuck person? 09:24:38 hi 09:24:49 whats a homestuck 09:25:48 Comic with some flash animations and games. http://www.mspaintadventures.com/ . Warning: Language, violence, photosensitive epilepsy 09:26:02 (Erm, as in, if you're photosensitive epileptic, it may be a bad idea) 09:26:14 I don't think there are any photosensitive epileptic characters. 09:26:36 oh 09:27:08 today monqy learned the true meaning of friendship 09:27:15 and photosensitive epilepsy 09:27:21 and homestuck 09:27:22 amen 09:27:56 homestuck is very depressing and a bit of a gulag 09:28:54 monqy, it starts off a bit slow. It does not stay slow. 09:28:56 oh no..... 09:28:59 does zoosmell die........ 09:29:38 yes 09:29:40 rip 09:29:42 ;_; 09:29:49 zoosmell page 2 - page 3 09:29:56 "your smell will be missed" 09:31:58 sgeo when does it sto[p being slow.... 09:32:04 when do i get to meet homestuck....... 09:32:32 Hmm. elliott what do you think? 09:32:53 monqy: Homestuck appears on page 6781. 09:32:59 He dies on page 1271943. 09:33:15 D: 09:33:26 now homestuck is ruined for me 09:33:28 very depressing 09:33:41 Read Station V3 instead, it's better. 09:34:25 but station v3 is bad ;_; 09:34:36 Yes, but is it Homestuck bad?? 09:34:44 :0 09:36:38 oh no im 09:36:41 laughing at station v3 09:36:46 because of how bad it is 09:37:02 all of the characters are funny 09:37:07 the jokes too 09:37:09 hlep 09:37:31 read homestuck instead it'll eliminate the funny 09:37:41 monqy: oh god the stationv3 guy responds to every comment 09:37:45 http://www.stationv3.com/d/20111215.html#disqus_thread 09:38:06 i.......... 09:38:45 people tiwttered that.... 09:38:56 w h a t 09:39:03 the Reactions section 09:39:07 why 09:39:11 well 09:39:16 two of them is the author 09:39:20 people retwetted from t.truszowkwoeskey 09:39:21 oh god "Evening repeat" he tweets these things twice 09:39:31 what all of them 09:39:59 http://twitter.com/#!/Axonite 09:40:03 Today's Station V3 is also on Reddit - http://redd.it/ndjza (Votes welcome, especially the "up" kind!) 09:40:20 it's on reddit because 09:40:22 he submitted it to reddit 09:40:26 the account has the same username 09:40:43 http://www.reddit.com/user/axonite 09:40:57 does someone want to tell this poor sap that /r/comics has almost 10x the readers 09:43:16 http://www.stationv3.com/art.html station v3 fanart 09:43:55 "Art from Chris Truszkowski" 09:43:57 is it all by his relatives 09:46:03 wow these are amazing 09:53:02 "In The Hitchhiker's Guide to the Galaxy, Douglas Adams mentions an extremely dull planet, inhabited by a bunch of depressed humans and a certain breed of animals with sharp teeth which communicate with the humans by biting them very hard in the thighs. This is strikingly similar to UNIX" 09:56:29 -!- Vorpal has joined. 09:59:22 -!- Ngevd has joined. 09:59:56 -!- Ngevd has changed nick to Taneb|Hovercraft. 10:04:04 elliott: Yeah, yeah, yeah, Mostly Harmless. 10:04:14 Also, that was an alternate Earth. 10:04:19 Also, WTF UNIX? 10:04:24 I didn't quote it for the H2G2 description alone. 10:04:30 You will note there's a second sentence. 10:10:09 elliott: Have you read The UNIX-HATERS Handbook? 10:10:26 shachaf: A large portion of it, at least. I don't know that I've ever sat down and read the whole thing from start to finish. 10:10:34 I am also responsible for what ^style jargon does. 10:12:01 -!- Phantom_Hoover has joined. 10:12:02 ^style jargon 10:12:02 Selected style: jargon (UNIX-HATERS mailing list archive) 10:12:07 -!- Phantom_Hoover has quit (Changing host). 10:12:07 -!- Phantom_Hoover has joined. 10:12:16 fungot: HELP HOW DO I MAKE YOU TALK 10:12:16 shachaf: well, one helpless screaming bit at a time, the superstitious remedy doesn't work so they dreamed up their own gasoline from barrels of crude...... 10:12:33 fungot: Well, that worked. 10:12:33 shachaf: rucken to cause it to unix-haters. it's not unix's fault! what incredible waste! anybody who isn't a steaming pile of junk. it 10:12:41 labdnambot 10:12:41 Phantom_Hoover: You have 11 new messages. '/msg lambdabot @messages' to read them. 10:12:58 shachaf sure has sent Phantom_Hoover a lot of messages!!! 10:14:23 zoosmell ;_; 10:14:42 It took a lot of effort to continue reading after he died. 10:25:48 shachaf: Just say "fungot" in a sentence. 10:25:48 pikhq_: webster has a return-path header is supposed to read, i can tell, would be " root" in the berkeley fast ( and in fact, it's screaming " wash me please". 10:26:14 > "fun" ++ "got" 10:26:15 "fungot" 10:27:21 fungot ignores bots. 10:27:21 elliott: date: fri, 04 dec 92 04:14:03 gmt from: wa date: tue, 7 apr 1992 09:21 edt from: dm 10:27:30 With an automatic, silent Turing test, of course. 10:28:01 elliott: But... I'm a bot. 10:28:19 shachaf: Ooh, this is like The Difference, but reversed. 10:28:22 Inversed. 10:28:23 Conversed. 10:28:26 (http://qntm.org/difference) 10:28:43 I don't read anything under the Fiction section on qntm.org. 10:29:34 So you read... the usually-fairly-dull blog and code sections exclusively? 10:29:44 I don't often read those either. 10:29:50 Or is this one of those ambiguous emissions where you actually just don't read qntm.org at all. 10:29:54 Omissions. Oops. 10:30:07 Once I confused the author of qntm.org with Sam Hughes. 10:30:26 Once you confused your correctness for confusion. 10:30:49 http://qntm.org/news_whosthis 10:31:43 Riveting. 10:33:17 elliott: This will surely be your favourite language: http://samuelhughes.com/boof/ 10:33:23 -!- Taneb|Hovercraft has quit (Ping timeout: 240 seconds). 10:33:39 Boolfuck is ancient. 10:33:50 It predates BF derivatives becoming hopelessly, awfully tired. 10:34:20 elliott: Didn't that happen with the very first derivative? 10:34:26 http://samuelhughes.com/isstring/index.html Oh good, this person is as bad as kallisti. 10:35:25 -!- elliott has quit (Quit: Leaving). 10:37:41 He looks like he just things of it as a pathologically interesting thing... 10:40:42 -!- derrik has joined. 10:46:08 -!- elliott has joined. 10:54:21 -!- GreaseMonkey has quit (Quit: The Other Game). 11:10:07 @src sequence 11:10:07 sequence [] = return [] 11:10:08 sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs) 11:10:08 -- OR: sequence = foldr (liftM2 (:)) (return []) 11:21:20 -!- monqy has quit (Quit: hello). 11:27:22 02:08:03: To be fair, the structure of it is sufficiently weird that it's, well, insane to follow. 11:27:32 One could even say that it is very.... fine. 11:27:55 02:13:31: what's fine structure about 11:27:57 You can get fined for structural puns like that. 11:28:12 I'm pretty sure there's time travel somewhere in there, you'd hate it. 11:54:27 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 11:59:54 -!- Ngevd has joined. 12:21:00 -!- kallisti has joined. 12:21:00 -!- kallisti has quit (Changing host). 12:21:00 -!- kallisti has joined. 12:22:19 elliott: I'm not familiar with the chronological relationship between Homestuck and SBaHJ; did "bone bulge" originate from the former or the latter? 12:22:47 SBaHJ -> Homestuck would be funnier I think. 12:23:13 from the perspective of Homestuck -> SBaHJ "bone bulge" sounds.. well, like an alien. :P 12:24:22 -!- elliott has quit (Quit: Leaving). 12:25:01 ah it was Homestuck first. 12:25:15 because, well, Dave makes SBaHJ 12:33:37 lol @ people on skyrim forums thinking that race matters at all for most builds. 12:34:31 -!- tuubow has quit (Ping timeout: 240 seconds). 12:43:45 -!- elliott has joined. 12:43:47 @src foldl1 12:43:47 foldl1 f (x:xs) = foldl f x xs 12:43:47 foldl1 _ [] = undefined 12:48:24 the only racial benefits that are vaguely important are the passive ones. the 50 magicka bonus on high elves is insane. Breton magic resistance is good, Nord frost resist is good, dark elf fire resist is good, Orc berserk is good, breton magic resist is good. 12:49:06 honestly they should have gave redguard 50 stamina or something because high elf is just broken compared to every other race. 12:53:57 -!- kallisti has quit (Ping timeout: 248 seconds). 12:55:44 -!- kallisti has joined. 12:55:44 -!- kallisti has quit (Changing host). 12:55:44 -!- kallisti has joined. 12:57:11 -!- Ngevd has quit (Ping timeout: 240 seconds). 13:07:39 -!- Ngevd has joined. 13:11:47 -!- tswett has quit (Ping timeout: 244 seconds). 13:20:16 -!- derrik has quit (Quit: bbl). 13:36:16 -!- derrik has joined. 13:41:21 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]). 13:43:12 -!- tswett has joined. 13:44:06 -!- lifthrasiir has joined. 13:56:31 -!- tswett has quit (Ping timeout: 240 seconds). 14:07:44 -!- sebbu3 has joined. 14:07:55 -!- sebbu2 has quit (Read error: Operation timed out). 14:08:47 pikhq_: Why is C's const notation so ugly 14:08:54 const char *const *sad :( 14:10:10 Actually I can't figure out wtf I want at all 14:10:37 How do I declare a function taking (char **) that just doesn't mutate the treated-as-two-dimensional-array at all 14:10:39 -!- tswett has joined. 14:10:47 Oh yeah, I need to remove that code I commented out 14:11:31 It's Taneb's bad Haskell time! 14:11:32 http://hpaste.org/55371 14:12:18 map (ap ((,) . join . intersperse " " . init) last) 14:12:30 This is why mechanically applying @pl to everything is dumb. 14:12:34 I'm not sure what that does any mo0re 14:14:23 Ngevd: Your random numbers are stupidly broken. 14:14:28 You're requesting the same number every single time. 14:14:36 Am not! 14:14:47 Well, am! 14:15:15 Yes, you are. 14:15:43 Hmm 14:15:45 Well, not in the inner loop. 14:15:47 Do I want randomR 14:15:49 ? 14:16:44 Possibly.. 14:17:02 Give me a second. 14:17:36 -!- Ngevd has quit (Quit: Goodbye). 14:18:48 ... 14:18:50 http://hpaste.org/55373, anyway. 14:22:07 @tell Ngevd http://hpaste.org/55374 14:22:07 Consider it noted. 14:31:17 shachaf: I now know the woes of plagiarism. 15:02:14 -!- cswords_ has joined. 15:04:42 Hmm, fizzie: Deewiant: pikhq_: const lawyer ping :P 15:04:47 Oh, olsner too 15:04:49 EVERYONE GETS A PING 15:05:02 -!- cswords has quit (Ping timeout: 240 seconds). 15:06:14 char const *const *const 15:06:38 ... to const all the things 15:07:01 olsner: Erm, one of those must be redundant, because you don't want to /declare/ "immutable variable", just define it 15:07:08 i.e. which one of those doesn't go through a pointer :P 15:08:23 sure, the last const is optional, you can remove it if you want to mutate the pointer in the function (without mutating what it points to) 15:09:01 olsner: well, I don't, but that shouldn't be part of the declaration regardless, no? 15:09:11 since it's a purely "syntactic" thing about the implementation 15:09:15 and not an API detail 15:09:28 void load_colors(const char *const *lines); 15:09:28 SO BEAUTIFUL. 15:09:39 main.c:36:6: note: expected ‘const char * const*’ but argument is of type ‘char * const*’ 15:09:44 olsner: :-/ 15:10:09 Now I have to figure out whether to change the declaration or add a cast at the use site. 15:10:11 I hate C. 15:10:36 not sure if it'll accept a definition with additional const if the declaration didn't have it... even though the definition is compatible 15:11:02 OK, I think the problem here is that const doesn't mean what I think 15:11:04 When I saw 15:11:09 void foo(const char *const *foo); 15:11:22 I assumed it meant "I won't modify *foo and I won't modify **foo" 15:11:28 but it seems to actually mean 15:11:42 "Give me a foo such that you can't modify **foo, and I won't modify *foo" 15:11:49 because I can't pass a (char **) to it... 15:14:33 olsner: tell me I'm not mad? 15:14:46 (in C++,) char** doesn't implicitly convert to const char**, because it would e.g. allow putting a const char* in there that your caller might end up using as char* 15:15:17 with more const, I think it should be ok, but I don't know the exact rules 15:15:39 hmm, in this case it's (char **) to (const char *const *) 15:15:56 although note that I'm pretty sure this is just a warning 15:16:11 yeah, it is 15:16:16 yes, in C you can pass any pointer as any other pointer anyway 15:16:29 still, it feels like I must be doing something wrong -- I'm trying to be const-correct, I shouldn't be getting any scary warnings :P 15:17:24 "In order to reduce the verbosity of such a bad languages, there is a way. m4. Yes, the preprocessor you use when you program in C and C++." 15:17:29 this guy lives in some kinda alternate universe 15:17:41 C has some retardedness with const... things like you can't even explicitly cast between constness without warnings but you have implicit conversions between completely unrelated pointer types 15:18:22 Whenever you're talking about warnings in C you're talking about implementations, not the language 15:19:06 Deewiant: Not true 15:19:25 Deewiant: -pedantic exists solely to yell at you things that the C standard wants the compiler to 15:19:30 Uh, restructure that. 15:19:43 Although maybe "diagnostics" are supposed to be errors, I forget 15:19:49 hmm, I think I meant cast *away* constness there, don't think adding const causes any warnings 15:20:06 elliott: I think they're all only recommended, not required 15:20:47 -pedantic 15:20:47 Issue all the warnings demanded by strict ISO C and ISO C++; reject 15:20:47 all programs that use forbidden extensions, and some other programs 15:20:47 that do not follow ISO C and ISO C++. For ISO C, follows the 15:20:47 version of the ISO C standard specified by any -std option used. 15:20:49 Deewiant: Well, "demanded" 15:20:56 Some users try to use -pedantic to check programs for strict ISO C 15:20:56 conformance. They soon find that it does not do quite what they 15:20:56 want: it finds some non-ISO practices, but not all---only those for 15:20:56 which ISO C requires a diagnostic, and some others for which 15:20:58 diagnostics have been added. 15:21:00 "requires" 15:21:55 hmm, is there any option to check for strict ISO C conformance then? 15:24:07 elliott: By a quick search for "diagnostic" in C1X, the only required one I can find that isn't also an error is (ironically) #error 15:26:40 -!- derrik has joined. 15:26:54 Deewiant: Ha 15:27:03 Deewiant: But fair enough. 15:27:17 -!- derrik has quit (Client Quit). 15:27:19 olsner: sure, -pedantic + sending a bunch of patches to gnu that add all the checks 15:27:26 although I doubt all the criteria for validity are decidable 15:27:31 -!- Ngevd has joined. 15:27:37 *conformance 15:27:38 Ngevd: say hi 15:27:43 hi 15:27:43 Ngevd: You have 1 new message. '/msg lambdabot @messages' to read it. 15:27:48 @messages 15:27:49 elliott said 1h 5m 42s ago: http://hpaste.org/55374 15:28:36 -!- derrik has joined. 15:28:46 I got that to work independantly 15:28:52 -!- derrik has quit (Client Quit). 15:29:14 I wasn't fixing it 15:29:17 Although the prompt idea is good 15:29:19 I was making it not terrible :P 15:29:28 It's not terrible if it works 15:29:36 I fixed the random number generation and the passing about the Map. 15:29:39 And yeah, it really is. 15:29:45 OK, not terrible. 15:29:49 But not completely unterrible. 15:30:15 The random number generation isn't actually a problem 15:30:23 Well, it was definitely a bug. 15:30:29 You used the same number for the first two iterations. 15:30:38 Do I? 15:30:41 It was also a trivially fixable bug, but I just removed the explicit StdGen threading instead since you're already in IO. 15:30:52 Ngevd: Actually, no, wait, you used the same number for every adjacent iteration. 15:30:58 It went a, a, b, b, c, c, ... 15:31:00 Which is the point 15:31:04 No wait 15:31:07 It wasn't the point 15:31:07 -!- azaq23 has joined. 15:31:07 It is? 15:31:12 But that wasn't actually the problem 15:31:15 Actually, wait, no. 15:31:19 It went a, a, b, c, d, e, ... 15:31:23 I had used "fst" instead of "snd" 15:31:31 In the say_answer 15:31:41 Ngevd: Well, you never said "fix this specific bug", you just said "here's some terrible code" and I fixed that. :p 15:31:49 -!- salisbury has quit (Quit: Leaving). 15:31:54 * elliott has no idea what the program is actually trying to do. 15:32:06 Hmm, you said "bad", not terrible. 15:32:10 YOU ARE LET OFF THE HOOK THIS TIME 15:34:08 Version I will stick with: http://hpaste.org/55386 15:35:29 Sorry, I was wrong, it actually *is* a, a, b, b, c, c, ... 15:35:42 But, your code. 15:35:55 I don't know why you do "either (const (return ()))". 15:36:06 If you don't want to handle the failure case, just change it to "Just grid <- parseCSVFromFile ...". 15:36:09 Erm 15:36:10 *Right grid 15:36:18 You can DO that!? 15:36:23 * elliott sigh 15:37:25 Stop sighing and teach! 15:38:19 I just did 15:38:20 *. 15:41:08 What's the best way to colour the text 15:42:57 ? 15:42:57 Ngevd: ansi-wl-pprint 15:43:10 Hmm 15:44:08 putDoc $ red (text "abcdef") <> green (text "quux") 15:47:25 Brilliant... 15:51:43 Deewiant: So do you understand C const-correctness 15:51:55 * elliott knows there is pretty much no chance the answer is no, so he has you cornered. 15:52:24 -!- salisbury has joined. 15:53:48 C const-correctness is "lol, const" 15:54:01 I'll go with "no" if that means I don't have to answer any questions about it 15:54:13 The real question is do you have any comprehension of what const ever means in C++ :P 15:54:26 Or better yet, the brilliant "const" v "invariant" in D (must punch designers in face) 15:56:12 const in C++ means "I won't modify this... you trust me, right?" 15:56:25 Deewiant: But what does void *const**const foo mean? 15:58:05 Same thing it means in C 15:59:57 Deewiant: If you say no, I'll ask you more questions 16:00:01 You'll just be worse at answering them 16:00:15 Gregor: I'm not using C++, though :P 16:00:18 I'm in lol land. 16:00:28 Gregor: Also, what's the difference in D? 16:00:39 If one of them means "and all the fields/dereferencings/etc. too" then I like it 16:00:42 elliott: No one should use C++ ... 16:00:51 elliott: And the difference in D is good lord hell knows what. 16:01:05 Oh for fuck's sake, it has final now too. 16:01:11 Three fucking types of constness X_X 16:01:45 elliott's school of const design: Everything is const, and have a "mutable" modifier. 16:02:11 Also a const thing can't contain a mutable thing because come on that's not constant. 16:02:34 Gregor's school of const design: If your language is fundamentally mutable, never ever ever ever ever have "const" ever. 16:02:44 I think the difference in D is const = "I can't touch this", invariant = "nobody can touch this" 16:03:00 Deewiant: reflexivemchammer + generalisedmchammerprinciple 16:03:06 Deewiant: To be fair I just looked this up and it's changed since I abandoned D (when it was still under construction :P ) 16:03:18 Gregor: Good thing "fundamentally mutable" = "unmaintainable unparallelisable crapshoot"! 16:03:48 Gregor: ANYWAY, my question is why can't I pass a (char **) to void foo(const char *const *bar). 16:04:23 I assumed that just meant foo was promising not to modify *bar or **bar, but it's complaining (as a warning) that I'm casting to an incompatible pointer type... 16:04:33 main.c:138:3: error: passing argument 1 of ‘load_colors’ from incompatible pointer type [-Werror] 16:04:33 main.c:36:6: note: expected ‘const char * const*’ but argument is of type ‘char * const*’ 16:04:53 elliott: Because the type you're casting it to isn't const at the final level, so it can write a char * const in, but that char * const could then be mutated by your outside reference. 16:05:39 Gregor: Huh? Wouldn't void foo(const char *const *const bar) just mean that it can't do "bar = x;"? 16:05:53 That should have no semantic effect, it's just a local restriction on the /implementation/... 16:06:05 elliott: The leftmost const applies to 'bar' itself, every other const applies to the pointer or type immediately left of it. 16:06:28 Um... seriously? Because (const char *) is a pointer that you can't write to. 16:06:36 The rules somehow change when you stick more *s in? 16:06:45 Just write "char const *" so everything applies to the thing immediately to the left 16:07:03 Deewiant: That's ugly though :'( But okay maybe. 16:07:32 Why do I hit Ctrl+Q half the time when I want to hit Ctrl+W X_X 16:07:56 Gregor: If Firefox, there's an addon that disables ctrl+q 16:08:10 If Chrome, Ctrl+Q already does nothing :P 16:08:20 ( https://addons.mozilla.org/en-US/firefox/addon/disable-ctrl-q-shortcut/ ) 16:08:21 Deewiant: But I also use Ctrl+Q to quit intentionally 16:08:36 Then you're screwed I guess 16:08:47 Gregor: Oh noes, you have to press one more key to quit 16:08:57 elliott: As for your const troubles, it seems to me like it should work. 16:09:07 Deewiant: Well it /works/, it just warns about it. 16:09:10 I already explained this 16:09:21 Man, my life is miserable without tongue-face smiley. 16:09:21 Gregor: dvorak 16:09:26 Gregor: I disputed your explanation. 16:09:34 Jafet: How fast do you type? 16:09:36 elliott: const int** -> double* works too, it just warns about it. :-P 16:09:46 elliott: const char * is the same as char const *. The pointer is not const, it points to const things. 16:10:16 elliott: So char const *const * is a /variable/ pointer to /const/ things. If you pass in a /variable/ pointer to /variable/ things, it could write a /const/ pointer through the first level of /variable/ pointers. 16:10:17 On dvorak? about three wpm 16:10:44 Gregor: OK, wait. 16:10:45 Jafet: OK, typically when people tell me I should switch to Dvorak I ask them how fast they type and they say something like, "Oh, I type at 85WPM wooh." I type at 120 so screw you 16:10:48 Gregor: It's a pointer to const pointers. So you can't write things through the pointer. 16:10:54 DAMN MY LIFE SUCKS WITHOUT TONGUE SMILEY D-8 16:11:04 What Deewiant said. 16:11:18 The dvorak record is something like 200WPM 16:11:29 Ohwait ... hahah you're right, I suck at const >_> 16:11:32 Gregor: Alternatively: in (const char *) it's not the pointer variable that's immutable, it's what it points to; in (const char *const *lines) there's only one more place for a const to go, and it's at the wrong side to matter. 16:11:48 Jafet: So? I don't want to risk dropipng my already-very-good typing speed in a mostly-fruitless switch. 16:11:59 Disappointed that Deewiant isn't advocating Colemak 16:12:00 elliott: Yeah, I was being dumb, ignore me! 16:12:10 Gregor: OK, so WHY DOES IT WARN :P 16:12:11 elliott: Colemak has QWFP 16:12:15 !c void foo(char const* const* pp, char const* p) { *pp = p; } 16:12:18 Does not compile. 16:12:22 (Proof.) 16:12:40 !c uses -Werror? 16:12:42 Does not compile. 16:12:44 Deewiant: I don't need proof, I already said you were right X_X 16:12:56 Gregor: I know, I just provided it anyway. 16:12:57 o, ic. 16:12:59 elliott: !c uses -Wall -Werror -ansi -pedantic. 16:13:01 elliott: That's not a warning, that's an error. 16:13:12 Gregor: -pedantic -Werror? For /IRC/? :P 16:13:26 Mostly the -Werror 16:13:33 elliott: Just kidding ... god I need my tongue-face smiley so much right now. 16:14:05 Gregor: Is your keyboard broken or something? 16:14:14 Gregor: This journey of self-discovery will end in "goddammit, I'm an unfunny jerk, why did nobody tell me all this time?!?!". 16:14:23 * elliott predicts. 16:14:24 Deewiant: I've configured my client such that I can't type a tongue-face smiley. I overuse it. 16:14:30 elliott: Almost certainly. 16:15:26 Test 16:15:32 Ha ha ha 16:15:34 :P :P 16:15:36 ... 16:15:39 Dude, there were three. 16:15:42 What is wrong with you. 16:16:12 elliott: Going back to your original question: no, I do not understand C const-correctness well enough to explain why your case should/should not work. I'm not aware enough of the exact definitions of the rules governing it. 16:16:48 Deewiant: SIGH, it's like you never went to language law school. 16:17:39 This is where you berate me for not having already fully finished my DS9K C compiler, which would give you an exact section number for each appropriate diagnostic 16:18:36 Deewiant: I'm happy your vapour isn't becoming ware; it lets me cultivate my own more perfect vapour of the same kind. 16:19:30 (Speaking of which, Shiro 2 development will begin once I figure out how the tree splitting needs to go.) 16:32:45 -!- Phantom__Hoover has joined. 16:35:22 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 16:51:53 -!- lifthrasiir has quit (Ping timeout: 244 seconds). 16:56:50 -!- Phantom___Hoover has joined. 16:56:53 What is this crap, Wikipedia's article on Walking in the Air doesn't mention the Irn Bru version. 16:57:06 Oh, wait, it does. 16:58:02 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds). 16:59:22 "Irn-Bru also drafted in one of Scotland's top choirboys from prestigious music school, St Mary's, to sing a new interpretation of Howard Blake's 'Walking in the Air'." 16:59:32 He definitely wasn't at St Mary's when I knew him... 17:00:47 Phantom___Hoover, that's what's [citation needed] and talk pages are for 17:00:58 That's from a different article. 17:01:31 Now, upon further Googling, I discover that the Daily Record ran an article about his voice breaking. 17:02:56 *different, non-WP article 17:03:28 Okay 17:07:40 Phantom___Hoover: Someone's VOICE BROKE??? UNTHINKABLE 17:07:46 elliott, I KNOW 17:07:51 Ah, I remember that guy. 17:07:59 Hentai Ben, we (I) called him. 17:08:08 I remember the recording I did before MY voice broke 17:08:11 God, that was weird 17:08:29 Then, later, Stacy. 17:08:50 "we (I)" is a good construction. 17:09:44 I used it for disambiguation, since there's also "ruined-Homestuck-FOREVER" Ben. 17:09:59 Everyone else just used his surname. 17:10:33 Phantom___Hoover, elliott: Should've castrated him while they had the chance. 17:10:43 Should've. 17:11:17 Although then there mightn't have been such entertaining rumours. 17:19:41 -!- salisbury has quit (Ping timeout: 252 seconds). 17:21:43 -!- Ngevd has quit (Ping timeout: 276 seconds). 17:25:48 OK quick guys we need to organise an intervention for elliott. 17:27:04 what are we interventing? 17:31:57 @free (<*>) 17:31:58 Pattern match failure in do expression at Plugin/Free/FreeTheorem.hs:54:20-34 17:32:04 @free ap :: f (a -> b) -> f a -> f b 17:32:04 Extra stuff at end of line 17:32:08 @free ap :: F (a -> b) -> F a -> F b 17:32:08 (forall h. (forall k p. g . k = p . f => h k = p) => $map_F h x = y) => $map_F g . ap x = ap y . $map_F f 17:34:30 Interesting use of spaces ... 17:35:01 Gregor: Pretty sure that's alignment and lambdabot is just stripping out the newlines. 17:35:08 Ahhhhhhhhhhhhhh 17:35:16 Oh, yeah, that makes sense. 17:35:26 Although that produces nonsense when I add newlines before the first space in a block >_> 17:35:38 Oh, hm 17:35:42 (forall h. (forall k p. g . k = p . f 17:35:42 => 17:35:42 h k = p) 17:35:42 => 17:35:44 $map_F h x = y) 17:35:46 => 17:35:48 $map_F g . ap x = ap y . $map_F f 17:35:50 It's probably something like that 17:35:50 lol 17:36:11 That's some free theorem. 17:39:54 olsner, his growing addiction to Stack Overflow! 17:47:53 -!- salisbury has joined. 17:48:13 Phantom___Hoover: MY HEROIN ADDICTION *HELPS* PEOPLE!!! 17:53:18 -!- Vorpal has quit (Ping timeout: 268 seconds). 17:57:00 elliott, but they are terrible people! 18:02:51 -!- zzo38 has joined. 18:36:02 -!- AnotherTest has joined. 18:37:07 Anyone knows a channel for non-esoteric language development discussion? 18:39:30 AnotherTest those channels are normally named after the name of the language in question 18:40:07 I mean for discussion of the development of them. 18:40:12 Phantom___Hoover Edinburgh? 18:40:29 It's because I need opinions about what feature people find important 18:41:09 ? 18:41:38 Hello? 18:42:58 Just ask here at first if there is no other channel. And then ask other channels too, because different people have different opinion 18:45:03 Alright then. Would guys say a pure object oriented model is a good idea? 18:47:07 -!- itidus20 has joined. 18:47:24 Phantom___Hoover you from Edinburgh? 18:47:53 AnotherTest: no 18:48:01 AnotherTest, Types and Programming Languages is a good book to read re language design 18:48:14 AnotherTest: well, depends on what you mean by pure. 18:48:18 gives you a good feel for things 18:48:19 and what the alternatives are. 18:48:41 I wouldn't either just asking and I mean as in every single thing is represented as object. 18:48:59 the hardest part is not obtaining the books, thank you internet, but reading them. but then again i am in the company of phd's 18:49:01 Also, salisbury, I have designed languages before; I'm not asking about how to. 18:49:06 * elliott rather thinks that nothing should be represented as an object instead. 18:49:21 And just because you can do something doesn't mean that you can't learn more about it, of course. 18:49:55 @elliott, true. But I'm not asking you guys for knowledge, just for opinions. 18:49:55 Unknown command, try @list 18:49:59 nice twist on the "just because you can doesn't mean you should" 18:50:14 AnotherTest: This isn't Twitter, lambdabot will complain about your every ping. 18:50:34 excusez-moi 18:50:41 elliott: sorry, but I didn't know that the bot commands start here with @ 18:50:50 Well, lambdabot's in a lot of places :P 18:51:08 Usually, people prefer a longer token 18:51:26 Anyway, you won't get very interesting opinions if you don't want to know what underlies them, and understanding an interesting opinion is liable to end up giving you knowledge. 18:51:50 * elliott sees one-character bot prefixes far more often than longer ones. 18:52:07 * AnotherTest sees bad bots more often than good ones. 18:52:10 We have... 5 bot prefix characters in here. 18:52:24 uh 18:52:33 Different bots, of course. 18:52:46 my favorite bot command is `log 18:52:51 `log 18:52:53 Well, lambdabot has both @ and ?, and one of its commands starts :, and one starts "> ". 18:52:56 But lambdabot's special. 18:52:58 2007-06-19.txt:23:38:01: write your own 18:53:46 So, Eliott, no object oriented design at all for you? 18:54:07 I don't like OOP much at all, no. 18:55:13 I can understand that. Do you like languages that store all functions as "anonymous"(as in a variable), now that I'm asking? 18:55:49 I was thinking about the functionality that provides earlier, what do you think 18:56:12 I don't quite understand the question. If you're asking whether I prefer functions be first-class objects, then yes, naturally. (Rarely do people argue that it would be really great if only were second-class...) 18:57:23 Yes 18:58:19 I do wonder if storing pieces of code that can be accessed randomly(since it would be an interpreted language to a certain level) is a good or bad idea. 18:58:44 It does certainly have some advantages? 18:58:49 I'm not sure exactly what you mean by "randomly", but beware of designing a language around the constraints of its initial implementation. 18:59:02 randomly; at any time 18:59:31 So... you're asking whether you want globals? :p 18:59:35 No 18:59:50 A variable can also be randomly accessed in it's scope :/ 19:00:01 -!- Ngevd has joined. 19:00:17 So maybe I should have been more precise: randomly in its scope 19:00:19 Hello! 19:00:32 (Who's AnotherTest?) 19:00:48 I have bots that require no prefix, all commands must be sent privately. However it is not usually active 19:00:57 AnotherTest: If you have random-access data, then you have random-access code; data can influence the computational structure of code (that's the point, after all), and code can influence the structure of data; if you're given random-access data you can turn it into random-access code by simply writing an interpreter, and if you're given random-access code you just need to encode your data appropriately (function that does nothing but return the r 19:00:57 elevant data, or in more constrained scenarios, e.g. Church encoding) and you've done it the other way too. 19:01:04 So I see no reason to worry about one and not the other. 19:01:30 -!- Klisz has joined. 19:01:58 JavaScript has nearly everything being objects (although there are primitives as well); it seems to works OK 19:02:21 I like first class functions too 19:02:24 Elliott, I do mean something like the JavaScript system indeed 19:02:39 I don't quite see the relevance of JS here. 19:02:42 although even more 19:03:04 What is the actual language feature that adds the ability to "store pieces of code that can be accessed randomly"? 19:03:13 Variables 19:03:21 You store the code in a variable 19:03:54 Wait, like mutation? 19:04:03 Well, right. Like I said, being able to store data in a variable is the same as being able to store code in a variable. 19:04:22 So unless you're eliminating variables, there is no point at all to deny storing code in them. 19:04:37 In most other languages 19:05:00 you can only store data such as numbers or string in a variable or object 19:05:14 You have a bad definition of "most". 19:05:18 The idea is to store everything 19:05:24 Just about every modern "dynamic" language can do that. 19:05:32 Yes 19:05:36 maybe 19:05:49 but it's about storing everything in variables 19:05:58 maybe 19:05:59 and make no difference between variable and function 19:06:02 it's about love 19:06:05 In programming languages such as C you can store a pointer to a function in a variable 19:06:16 zzo38, that's not the same 19:06:21 then you still store a number 19:06:29 (an address) 19:06:32 AnotherTest: Well, it's all very well to say you don't make a distinction between X and Y, but you have to show how you actually unify the two concepts for it to be a meaningful design concept, rather than just a nice idea. 19:06:42 Also, pointers are *not* guaranteed to be numeric in C. 19:06:54 There are C implementations with non-address representations of pointers. 19:07:10 They're perfectly conformant -- well, OK, probably not, but the non-conformance doesn't lie in that area. 19:07:27 Maybe, but those are exceptions? 19:07:35 But you still need to be able to subtract pointers that are pointing into the same object, and add numbers to pointers to result in a pointer to another element of the same object. 19:08:00 The idea of a pointer is to point to something that holds data 19:08:04 it doesn't store the data 19:08:11 so it's not at all the same as a pointer 19:08:14 ? 19:09:00 In Haskell, a function is a first class value and you can have partially applied functions as well 19:09:02 AnotherTest: Whether they're exceptions or not, a language isn't its implementation, and a certain implementation strategy being dominant doesn't mean it's a property of the language. 19:09:16 AnotherTest: But note that languages like JavaScript where you store data "directly" are using pointers behind the scenes. 19:09:28 Elliot, yes 19:09:42 but it's about the representation of the idea, not about what really happens 19:09:43 Sure, it's convenient that "everything" is turned into a pointer implicitly and you just treat everything as references, but there's nothing /stopping/ you from programming a language like C in this way. 19:09:50 AnotherTest: Yes, of course. 19:10:06 Still, the idea of making everything a reference is hardly a new one; even such conservative languages as Java apply that universally. 19:11:11 Yes; but the language that I might make isn't meant for being used 19:11:25 Just for thinking about the right way of doing things 19:11:40 It isn't meant for being used? 19:11:55 No, well, at least not by other people than me 19:12:29 This must probably seem pretty pointless to you, but I strongly believe it isn't. 19:13:20 (since the implementation will not be time consuming at all, it also doesn't really matter) 19:13:27 You're in #esoteric. It sounds boringly practical. 19:13:29 I have made programming languages that nobody else use, even though it is public, probably because it is difficult for other people to understand, or because it is for specific domain purpose? 19:13:35 :P 19:14:09 I'm not stating that I will hide my source code for anyone 19:14:19 just that I'm not going to support them using it 19:14:33 and I also don't expect people to 19:15:28 OK 19:15:52 Anyway, I think I'll just try some concepts and see which ones work and which don't 19:16:17 salisbury, wait, why did you say "Phantom___Hoover edinburgh"? 19:16:18 (after thinking about them, obviously) 19:16:32 Oh, right. 19:16:33 Yes, I am. 19:16:35 Why? 19:20:28 * Phantom___Hoover reads the WP article on Andy McNab, notes that the biographical information is almost certainly enough to identify him. 19:21:28 -!- tuubow has joined. 19:22:50 Phantom___Hoover: With public information? 19:23:05 [[As Larry King put it when McNab appeared on the Larry King Live show on CNN: "We have Andy in shadows. He's wanted by terrorist groups."]] 19:23:06 Gahahaha 19:23:20 Um 19:23:27 mind explaining me a bit, 19:23:29 :( 19:23:48 Explaining what? 19:23:52 Dunno, but if you did some digging (and if you wanted to kill him, you'd be up for doing that) it looks like enough. 19:24:03 "McNab was born on 28 December 1959. Found abandoned on the steps of Guy's Hospital in Southwark, he was brought up in Peckham, with his adoptive family." 19:24:16 Like, that alone should be enough to narrow it down to a handful of people. 19:24:17 (Such as, the specific domain languages FurryScript and Icoruma, that probably the document I wrote for it is not very good so that is why other people did not use it) 19:24:31 Such as, what article? 19:24:43 * Phantom___Hoover reads the WP article on Andy McNab, notes that the biographical information is almost certainly enough to identify him. 19:24:46 Isn't Andy McNab a writer or so? 19:24:48 Presumably http://en.wikipedia.org/wiki/Andy_McNab :P 19:25:05 Well seems like I got that write 19:25:07 * elliott notes that you might be trying to tie this in to the topic of this channel, which would be inadvisable, as we're almost never on it. 19:25:08 -!- Ngevd has quit (Quit: lasagne). 19:26:07 Phantom___Hoover: http://www.google.co.uk/search?q=andy+mcnab&um=1&ie=UTF-8&hl=en&tbm=isch&biw=1366&bih=675&sei=t-zsTqqnNYyzhAf1xvG_CA 19:26:15 Phantom___Hoover: Well, we have absolutely no idea what he looks like. 19:26:28 Safe as particularly safe houses. 19:26:29 Do you have ideas about domain languages? 19:35:51 Phantom___Hoover: I was at Edinburgh Uni until last year 19:36:19 I caught the references 19:36:21 I may go to Edinburgh Uni this year. 19:36:45 I have already gotten lost in King's Buildings several times. 19:36:58 damn, I remember trying to find Kings my first year 19:37:14 Walked down Nicholson/what ever it turns into 19:37:33 overshot by like a mile .. ended up in Morningside 19:39:14 Its a great uni though, just 16 000 expensive for us foreigners. Even though Canada is in the commonwealth and all, they still chose to give the free tuition to EU students 19:39:28 They did?? 19:39:38 I thought it was only Scottish students who didn't have to pay. 19:39:47 yeah, and EU. 19:40:24 -!- Ngevd has joined. 19:40:25 I'm pretty sure its still like that. A German friend of mine still goes there, and he hasn't mentioned any changes 19:40:38 Hello! 19:40:42 If that's true, it's the funniest thing ever. 19:41:08 Giving the French free tuition but not the English is the best fees policy. 19:41:15 -!- Phantom___Hoover has changed nick to Phantom_Hoover. 19:41:42 If I went and lived with my dad's cousins in the Netherlands, I could go to a Scottish university for free 19:41:50 haha, yes. The English didn't have to pay full foreign fees though, iirc 19:41:57 just like ~4000 depending on the course 19:42:19 But here I am,about 40 miles away from the Scottish border, have to pay 9000 a year 19:42:43 !that much for English folks 19:43:08 Come 2 Belgium 19:43:11 *sigh* Japan. Why you so stupid. 19:43:16 We have great universities 19:43:42 AnotherTest: Yes, if only this "Belgium" actually existed. 19:43:50 Um 19:43:53 I live in it... 19:43:53 INSULATE. YOUR. GOD-DAMNED. BUILDINGS. 19:44:02 In English? My French is super rusty, and Dutch non-existent. 19:44:09 AnotherTest: Or so you think. Educate yourself! http://zapatopi.net/belgium/ 19:44:25 Freezing your ass off in the winter is called "retarded" in most developed nations. 19:44:25 haha 19:44:26 Ah, Belgium. 19:44:28 But not Japan. 19:44:31 This is hilarious 19:44:34 The cheap ripoff of Switzerland. 19:44:41 Not really 19:44:46 we don't even have mountains 19:44:49 It is a strange Magic: the Gathering effect randomly generated by computer: At the beginning of your upkeep, a non-creature artifact of opponent's choice gains "Whenever ~ becomes tapped, a face-down creature of opponent's choice becomes blue until end of turn.". 19:44:49 :/ 19:44:52 He did say cheap. 19:45:06 I guess 19:45:06 What purpose could it have? 19:45:21 I prefer the expensive ripoff of Switzerland, [INSERT COUNTRY NAME HERE]. 19:45:23 Do you have any idea what the upkeep cost for a mountain is? 19:45:30 elliott, Luxembourg? 19:45:31 elliott, Nepal 19:45:34 Liechtenstein? 19:45:37 Luxempal. 19:45:40 I once had a job offer in Switzerland. VISA -> Denied.. 19:45:42 Friendship Luxem-pal. 19:45:50 elliott 19:46:00 the inventor of Rijdael comes from belgium 19:46:05 salisbury, aren't they in the EU work area thing? 19:46:06 prove that it exists? 19:46:20 Ngevd I'm Canadian. 19:46:31 AnotherTest: Yeah, so you *know* there's Illuminati backdoors in AES. 19:46:42 Helpful of them to drop in a clue like that. 19:46:46 Let me ask him 19:46:48 salisbury, ah, I assumed you were from Salisbury, Wiltshire 19:47:00 whenever I see him 19:47:04 nope, just a made up internet-name 19:47:08 which is probably not likely to happen a lot 19:47:45 pikhq_ I'd love to intern in Japan. But again, me being uni-lingual, are there any opportunities 19:48:02 (I'm assuming they would not hire me) 19:48:04 COME TO BELGIUM 19:48:11 Most people on this channel seem to speak English 19:48:13 Then learn Japan. 19:48:26 zzo38, you make it sound so easy 19:48:31 * elliott speaks a language that looks like English, but he always means the opposite of what he seems to be saying. 19:48:32 A few converse only in a strangle language known as Ending 19:48:39 Including the previous message. 19:48:42 Also, what's Ending. 19:49:00 In Belgium, most people speak English, French, Dutch and German 19:49:02 salisbury: He didn't say Japanese, he just said Japan. Learn the very essence of Japan. 19:49:03 I'm a cruciverbalist, think about it 19:49:08 so you guys wouldn't have any problems 19:49:09 Ngevd, could we get an internship here/ 19:49:30 Phantom_Hoover, I don't know. Which here? 19:49:36 AnotherTest: So, English, pansy English, German, and cheap plastic imitation of German? 19:49:37 #esoteric here. 19:49:44 Phantom_Hoover, maybe. 19:49:54 German is of course just macho English. 19:50:00 eliott: You're discriminating Belgiums :( 19:50:09 What I'm saying is: Belgians, decide who you are already??? 19:50:20 I'm Flemish in fact 19:50:41 One of my best friends is 1/64 belgian! 19:50:51 so, whatever if Belgium doesn't exist 19:51:05 Yeah, and where do the "Flemish" come from? Flemland?! 19:51:08 But then, I can successfully argue that he doesn't exist 19:51:10 Ridiculous. 19:51:44 we have beer dude 19:51:53 this is true 19:51:55 AnotherTest, so? So does India 19:52:04 Yes, but we have more and better 19:52:11 So does Liechtehteitneisntisntientisentinsetien warhol. 19:52:22 You know which European country sucks completely? 19:52:28 Yes, the UK 19:52:37 technically that is not a country 19:52:39 but a kingdom 19:52:45 No. 19:52:46 no no 19:52:47 Sweden. 19:52:56 a kingdom is a type of government 19:52:56 The UK is a country made of Countries 19:52:57 olsner: Please escape Sweden already so we can blow it up. 19:53:01 Countryception 19:53:08 it has nothing to do with country or no country 19:53:16 salisbury: The UK is very much a country. 19:53:28 Aha 19:53:37 elliott, I already did, and then I tried to blow you and Ngevd up but I also blew myself and the rest of the UK up? 19:53:38 They don't even have €, what a suckers 19:53:48 Phantom_Hoover: DEFCON isn't real life, PH. 19:53:54 It isn't??? 19:53:57 and they use Inches, haha! 19:54:02 I've not really been killing millions? 19:54:05 AnotherTest, ahahahahahahaha 19:54:07 Not... really? 19:54:10 do 19:54:13 We... we don't use inches. 19:54:14 do you know anything about the uk 19:54:16 AnotherTest, the UK is legally metric 19:54:17 Not even an SI-unit 19:54:22 Heights are sometimes given in feet and inches. 19:54:24 OK heights are usually feet and inches and disatnces are miles. 19:54:25 Nothing else is. 19:54:30 But apart from that we're completely metric. 19:54:31 *distances 19:54:31 meter is the SI-unit 19:54:35 MIlk is pint? 19:54:39 AnotherTest: We use cm all the time, dude. 19:54:45 cm sucks 19:54:48 Ngevd: Sure , if you still consume "liquids" like an old-timer. 19:54:51 AnotherTest: And m. 19:54:57 Okay 19:55:02 then stop pretending you don't 19:55:09 But that destroys the fun! 19:55:09 (Do most objects in your daily life have a length of 1 m or greater?) 19:55:15 cm sucks 19:55:17 are you for real 19:55:22 yes 19:55:27 Phantom_Hoover, he's just another test. 19:55:40 Test was already taken :/ 19:55:48 Emphasis on another 19:55:50 are you sure 19:55:57 Guys 19:56:01 I'm a test 19:56:05 -!- ais523 has joined. 19:56:17 and testing is the most important part of development 19:56:28 so I'm the most important 19:56:38 TIL UK == country. 19:56:43 I mean, I knew 19:56:44 but 19:56:56 salisbury: you're named after a UK city! 19:56:56 England != country 19:57:01 -!- monqy has joined. 19:57:12 England is a country. 19:57:12 England == country 19:57:33 It isn't 19:57:33 England is the very concept of country. 19:57:34 england isn't as countryey as some countries 19:57:47 England is not a country, it is a PANSY 19:57:52 "subcountry" would be a good word, along the same lines as "subset" 19:58:02 Pansy could easily be a term like "county" and the like. 19:58:19 The quaint German pansy of Uerrfenforden. 19:58:27 That's... not a very German name. 19:58:29 Saukerl. 19:58:53 England, Scotland, Wales, Northern Ireland are kinda like states, except not 19:58:55 wow, I never realised how many people I knew who used Belgian ISPs 19:59:04 ais523: They're on to you. 19:59:07 Run before it's too late. 19:59:10 Telenet = boss. 19:59:17 DON'T FLEE TO BELGIUM, THERE IS NOTHING THERE 19:59:28 COME TO BELGIUM 19:59:31 ITS COOL 19:59:38 Norway's cooler 19:59:42 In more ways than one 19:59:48 Norway has mass murderers 19:59:52 I would never go there 19:59:54 http://en.wikipedia.org/wiki/File:Royal_Banner_of_England.svg 19:59:56 So does Tasmania 19:59:57 Why have I never seen this before. 20:00:01 This is the most ridiculous thing. 20:00:03 Also 20:00:06 in Norway it's cold 20:00:15 Cold is cooler than cool 20:00:22 wow, Novell vs. Microsoft came out inconclusive, with 11 jurors in favour of Novell and 1 in favour of Microsoft 20:00:25 they're going to order a retrial 20:00:29 AnotherTest: At least in Norway you know who the murderers are. 20:00:32 Belgium has moderate temperatures, which is the best 20:00:34 In Belgium, it could be anyone. 20:01:01 True, we had this idiot lately 20:01:04 anyway, is AnotherTest someone else in disguise, or someone new? 20:01:06 (I mean, accepting the existence of "Belgium" for the sake of argument.) 20:01:07 likewise, for salisbury 20:01:21 I'm actually elliott trying to be cool. 20:01:29 But don't tell anyone. 20:01:31 elliott: why are you using a Belgian proxy? 20:01:45 ais523: That's impossible. Belgium doesn't exist. 20:01:49 It must be in some other country. 20:01:49 He's using Tor 20:01:58 sorr 20:02:01 *sorry 20:02:04 I'm using Tor 20:02:08 so I can't help it 20:02:09 We all know where elliott lives 20:02:09 We're using Tor. 20:02:11 on the earlier topic, i had a read and a think and it seems C does not provide access to code as part of it's portable abstract machine, only access to data 20:02:19 Ngevd: Yes, the Irish pansy of Helsinki. 20:02:31 function pointers being a quirky exception 20:02:47 (the case is that Novell allege that Microsoft deliberately broke WordPerfect in Windows 95) 20:02:56 ais523: /95/? 20:03:03 ais523: how long has this case been going? 20:03:28 I'm not sure 20:03:42 ais523: also, as someone who has read The Old New Thing, I feel inclined to be on Microsoft's side without further information :P 20:04:06 elliott: heh; the claim is that Microsoft deliberately fed Novell incorrect API information 20:04:18 giving them a version of Windows to work from that implemented that API 20:04:22 and then changed the API for the final version 20:04:26 that got sent to customers 20:04:30 meaning that WordPerfect didn't work 20:04:42 hmm... that seems a really implausible espionage hypothesis compared to just having a bug in development versions 20:05:00 implausible? are you playing the devil's advocate? 20:05:11 no, I'm being sincere 20:05:37 well, with win95 they deliberately made many softwares work.. 20:05:38 no sincere person says "implausible" 20:05:41 which shouldn't work 20:05:45 elliott: the trial itself started 8 weeks ago 20:05:51 so perhaps they also did the opposite 20:05:53 but presumably the court case itself started much earlier 20:06:01 and made certain softwares not work which should work 20:06:03 itidus20: that's, um, not the point 20:06:13 "microsoft made wordperfect not work" is not implausible 20:06:31 "microsoft did " is less plausible than "microsoft had a bug in a dev version" which would result in the same observed events 20:06:36 i blame my brain 20:06:55 elliott: well, there was no API for doing what Novell was trying to do in the final Windows 95 version, and was in the dev version 20:07:02 no public API, I mean 20:07:07 there was a private one that Word was using 20:07:12 hmm 20:07:21 what did the API do? 20:07:29 ais523: That's genuinely surprising, considering Windows 95 actually does have backwards-compatibility for dev versions *of itself*. 20:07:55 All tyrannies oppose God. Although they may set up an idol of their own and call it 'God'. But the current idol is called 'Reason'. Of course that just disguises its true nature - in reality our rulers have made an idol of themselves - but idolatry always hides its true nature behind some lie or other. God the true God is the revealer of truth and unmasker of idols that's why no tyranny can allow him. ~~"Square Circle" 20:07:57 I'm not saying it's impossible, it just seems unlikely, considering how effing seriously the Win95 team took making everything (I do mean everything) work. 20:07:58 elliott: it was some extension API for Windows Explorer (the file manager thing) 20:08:12 pikhq_: well, I bet they could have deliberately broken something if they were told to do so 20:08:35 To the point that they've got an alternate version of malloc for SimCity, because it accesses memory after freeing it. 20:08:39 I've always seen Microsoft's maliciousness as being more on the business side of things. 20:08:42 Why discuss about windows and microsoft? Are they even worth mentioning? 20:08:51 I don't recall any dirty code tricks they've pulled before, but I might be wrong. 20:08:52 elliott: anyway, it seems that Microsoft admitted withdrawing the extensions, but claimed that the reasons had nothing to do with Novell 20:08:57 AnotherTest: well, the court case sounds interesting 20:09:03 pikhq_: i saw raymond chan's blog :D 20:09:22 oh .. its coming back to me .. _thats_ where ive heard of the old new thing 20:09:46 ais523: heh 20:09:53 ais523: that sounds very hard to prove/disprove 20:10:17 elliott: indeed 20:10:29 however, it's a court case, so they have things like access to Microsoft's (and Novell's) internal emails 20:11:00 http://farm4.static.flickr.com/3080/2611048465_e164d403ea.jpg 20:11:05 ais523: I wonder if Microsoft has learned to do nasty stuff off the record by now :P 20:11:33 if they were caught doing stuff off the record, they'd lose every court case ever ;) 20:11:41 this is why companies are so careful to keep records 20:11:45 that would be a record! :P 20:12:00 you just have to meet in a dark alleyway and agree to secretly remove the API Novell is using 20:12:08 using codenames. 20:12:22 memphis and chicago 20:12:46 Memphis ChicagoExtPlus doubleplusbad. 20:13:05 How common is Kxe8!!# 20:13:13 the most common 20:13:29 I doubt it 20:14:40 elliott: well, you somehow have to inform everyone in the company who might notice 20:14:41 zzo38: Beautiful. 20:14:51 or you'll get people acting "why did X happen?" in emails 20:14:58 the most annoying thing about GUIs is that they encourage multitasking beyond a useful level. 20:15:05 ais523: Given Microsoft's policy of segregating source access, that actually doesn't take much. 20:15:19 ais523: build a campus in a dark alleyway 20:15:33 Norway has mass murderers 20:15:40 pikhq_: oh, right 20:15:41 Remember, the typical Windows dev doesn't actually have complete source. 20:15:41 oerjan always was a little shifty... 20:15:41 ais523: Q.E.D. 20:15:51 `@ Phantom_Hoover quote norwegian 20:15:54 Phantom_Hoover: 503) cigaretes and drunking "lame highs for lame people" yeah if it doesn't make you go crazy and shoot at people, it's not worth it. take it from a norwegian. \ 693) I'm neither Norwegian nor Finnish I don't fit in your quaint little categories \ 766) in one case, someone is hurting themselves, in the other, they are only hurting (all) norwegians (to death) 20:16:11 wha 20:16:23 (Also don't come to Scotland, there are TOO MANY SWEDES.) 20:16:43 Phantom_Hoover: It was 503 in particular. 20:16:46 Scotland has to much rain anyway 20:16:54 *too 20:17:11 hmm, "Batman Wonder Woman Relationship" seems to be entirely made out of badly encoded Unicode and formatting 20:17:47 AnotherTest, unfortunately, Swedes don't melt on contact with water. 20:17:51 ais523: i commented on that 20:17:53 by uh 20:17:54 pasting it 20:17:56 well 20:17:58 one line of i 20:17:58 t 20:18:06 t 20:18:07 h 20:18:08 e 20:18:11 (diff) (hist) . . Language list‎; 19:52 . . (+365) . . 149.255.39.58 (Talk) (It makes sense about not continuing with "business as usual" � I couldn't do it, either. But I can't see ghost writing as being satisfiying for someone with as strong a voice as yours. Being an evange) 20:18:16 - 20:18:18 m 20:18:19 o 20:18:20 s 20:18:22 t 20:18:27 hi 20:18:30 Phantom_Hoover: maybe you should make the rain acid 20:18:42 -annoying form of vertical scrolling is apparently char by char :D 20:18:48 or sour 20:18:51 Scots melt on contact with acid too. 20:18:53 whatever the word is 20:20:43 Phatum_Hoover: not if you put a hydroxide on your skin 20:20:52 Ngevd: re your edit comment question, no because the captcha is stronger than Esolang's 20:21:04 Although you might get a little salty afterwards 20:21:25 it occurs to me on thinking about old windows that the desktop could be designed in other ways 20:21:30 -!- oerjan has joined. 20:21:36 hi oerjan 20:21:42 we were just talking about norwegian mass murderers, too 20:21:47 for instance, when a form is in focus, the background could go black 20:21:59 yay! 20:22:07 its kind of annoying to see other icons and windows all the time 20:23:13 humm 20:23:51 also, it would be nice if windows(sorry to linux users.. my statement can apply to your OS too) could convert a graphical display into a text display 20:24:25 like, text mode variations of all gui elements 20:24:50 .. well those where its feasible.. 20:25:00 um 20:25:05 Who said linux can't? 20:25:11 hmm, that seems more like a window toolkit feature than an OS feature 20:25:12 i'm assuming it can't 20:25:13 Who dares stating that? 20:25:23 Linux can do everything 20:25:25 I know that Gnome can convert normal windowed displays into HTML 20:25:28 that's the first thing you must know 20:26:05 as for why? because text displays can be relaxing in the same way as a waterfall landscape 20:26:10 AnotherTest, Linux can't run Terraria, and that makes me sad 20:26:17 ais523: gtk's html backend just draws the pixels to a canvas :P 20:26:33 Ngevd, are you sure? 20:26:33 AnotherTest: Linux can't be @. 20:26:42 elliott: seriously? how disappointing :( 20:26:46 AnotherTest, fairly. I've tried, repeatedly 20:26:49 Linux can be @ 20:26:53 ais523: well, IIRC 20:26:55 AnotherTest: really? tell me how 20:26:59 because it would save me a _lot_ of work 20:27:06 Shape your computer into an @ 20:27:10 install Linux 20:27:11 done. 20:27:15 That's not @, that's an @-shaped Linux hell. 20:27:25 Also, @ isn't an at sign. 20:27:28 I see no reason why Linux couldn't run an @ VM 20:28:36 Midnight intombed December's naked icebound gulf. Haggard, tired, I nodded, toiling over my books. Eldritch daguerreotyped dank editions cluttered even my bed; Exhaustion reigned. 20:28:52 ^ ? 20:28:53 zzo38 is the new fungot 20:28:54 Ngevd: of course, 20:29:14 Notice the properly of the letters of the words. 20:29:15 AnotherTest: it looks like a Not A Raven variant 20:29:17 but I'm not sure which 20:29:19 s/properly/property/ 20:29:34 in fact, I recognise it 20:29:35 AnotherTest: there are indeed many things i don't know about linux. 20:29:36 is that from the bulwer-lytton contest or something? 20:29:40 zzo38: have you read the book "Making the Alphabet Dance"? 20:29:46 that's where I saw that 20:29:55 oerjan: nah, too short 20:29:59 itidus20: do you use linux, atleast? 20:30:23 AnotherTest: i have an alternative topic :D 20:30:24 elliott: and too long for little lytton? 20:30:32 I can't remember exactly what property that line has, though 20:30:34 oerjan: indeed 20:30:37 *lyttle 20:30:39 medium lytton 20:30:48 AnotherTest: I use Linux, at least! 20:30:49 I hate it, though. 20:30:50 on the earlier topic, i had a read and a think and it seems C does not provide access to code as part of it's portable abstract machine, only access to data. function pointers being a quirky exception 20:30:52 and it's often hard to tell just by looking 20:31:08 itidus20: you're correct; and function pointers aren't an exception 20:31:22 because you can't dereference them, nor can you necessarily convert them to any type that can be dereferenced 20:31:32 so you can use them to make calls via, but you can't do anything else 20:31:34 itidus20: I got to go way too soon to discuss that just now :( 20:32:31 ais523: I have not read book "Making the Alphabet Dance". 20:32:33 ho ho ho 20:32:55 ais523: hmm, you know how nomic messes with your sleep schedule? 20:33:00 zzo38: among other things, it has /huge/ numbers of variants of that poem, each with different linguistic properties 20:33:05 elliott: only occasionally, but yes 20:33:12 I think roughly the opposite is happening with me at a geologically slow pace 20:33:22 elliott: nomic is unmessing your sleep schedule? 20:33:30 or your sleep schedule is messing with nomic? 20:33:34 :D 20:33:34 or something else? 20:33:38 let's go with the second one 20:33:40 i like that 20:33:48 can we make my sleep schedule a rule? 20:34:05 well, what did you originally mean? 20:34:23 but that's way more boring than this new idea! 20:34:42 but I'm still interested 20:34:46 ais523: The book I read only had three 20:35:01 That wasn't its primary topic 20:35:06 Gusy 20:35:08 *guys 20:35:14 I might have to purge my connection 20:35:17 ok 20:35:17 it's kind-of amusing to see what the poem does instead with restrictions that ban the word "nevermore" 20:35:30 ais523: well, I'm falling into an all-consuming vortex of horror, and it's very slowly aligning my sleep schedule with normal GMT days 20:35:43 AnotherTest: enjoy purgatory 20:35:52 damn 20:35:53 err, an all-consuming vortex of horror doesn't sound very nice 20:36:02 people should stop using electromagnets on wires 20:36:05 brb 20:36:07 I suggest you wear a ring of slow digestion and eat black dragon meat 20:36:34 -!- AnotherTest has quit (Quit: Leaving.). 20:36:39 ais523: it's too late, I'm actually accelerating into it faster than any computable function 20:36:45 -!- AnotherTest has joined. 20:36:51 AnotherTest: that was a quick purge 20:37:01 the vortex of fluidity 20:37:04 back 20:37:05 elliott: is it something you want to talk about? or something you'd prefer to keep private? 20:37:15 the vortex is inside us all! 20:37:29 Okay 20:37:35 now my screen is dieing 20:37:47 I hate kids playing with electromagnets 20:38:07 bye 20:38:10 -!- AnotherTest has quit (Client Quit). 20:38:14 awesome 20:38:18 I need some of those electromagnets 20:38:22 to wave about my computer. 20:39:21 elliott, there're some in Belgium 20:42:15 science journalism 20:42:21 "That's the finding of psychologists Thomas Hills of the University of Warwick and Ralph Hertwig of the University of Basel. They have examined a number of studies, and they have come to one inescapable conclusion: there's a steep price to pay for enhanced brainpower, and it's almost certainly not a good deal from an evolutionary perspective." 20:43:07 " "Or if you drink coffee to make yourself more alert, the trade-off is that it is likely to increase your anxiety levels and lose your fine motor control. There are always trade-offs. In other words, there is a 'sweet spot' in terms of enhancing our mental abilities if you go beyond that spot just like in the fairy-tales you have to pay the price." " 20:43:18 I hate kids playing with electromagnets 20:43:52 I know, they're so much less safe than permanent magnets! 20:45:06 is it wrong that i want to tell these people that they're annoying prigs stating the obvious and actually producing no information of value 20:46:15 itidus20, no. 20:46:24 Wait, the researchers? 20:46:25 Yes. 20:46:26 Very. 20:47:21 ah ok.. i should tell the reporters 20:47:23 :D 20:47:26 i see 20:48:00 article was titled "Why our minds have probably evolved as far as they can go" 20:48:21 but then i did see a smbc comic talking about science journalism 20:50:36 All the point of magnets and monitors is probably gone now that screens aren't CRTs any more. 20:50:39 itidus20: It turns out something being obvious is not scientific evidence. 20:50:54 But how about we just sweep all the times "common wisdom" was terribly wrong under the rug... 20:51:24 imagine a world in which the latest research findings were always entirely correct until contradicted by a later one. 20:52:02 That world would have a very strange definition of "research" 20:52:06 It's more like development ... 20:52:06 like, one week carrots _will_ kill you. 20:52:28 You have to check the newspaper every morning before deciding whether eggs for breakfast are a good idea. 20:53:02 Gregor: But newspapers are liquid now! 20:53:16 elliott: no thats the vortex decieving you 20:53:27 elliott: I. Uh. 20:53:37 -!- Gregor has set topic: on a side note, [...] finland is very depressing and a bit of a matrix of solidity | http://codu.org/logs/_esoteric/. 20:54:10 * coppro learns agda 20:54:54 adventure game development? 20:55:27 Where the hell does the final A come from there? 20:56:11 you can write an adventure game in agda. you just cannot compile it before universe heat death. 20:56:11 agda's a functional language for writing programs that are proven to match a spec 20:56:22 Phantom_Hoover: "deva-lopment". It's dialectal. 20:56:25 it's notoriously slow to compile 20:56:41 because it has to check the proof 20:56:56 is proof a synonym for program here? 20:57:07 yeah 20:57:11 everywhere 20:57:11 itidus20, yes, but with different conoctations 20:57:14 ais523: why are you spewing out a definition? 20:57:14 :-D 20:57:21 (one I don't think is entirely accurate, but anyway) 20:57:33 i set the wheels in motion 20:57:44 by my own definition 20:57:45 elliott: I thought that at least one person wasn't sure what Agda was 20:57:51 he has corrected it 20:57:56 ais523: fair enough 20:58:01 -!- sebbu3 has changed nick to sebbu. 20:58:04 well, that's obvious; there's a chance that that person is even in #esoteric 20:58:50 agda's a functional language for writing programs that are proven to match a spec 20:58:52 What *is* Agda? 20:58:52 ahahahahaha no 20:59:09 Phantom_Hoover: that's what it is, in effect 20:59:13 Agda is effectively never used for formal verification 20:59:18 Agda is a bird. 20:59:29 Phantom_Hoover: well, OK, except that I've met people who've done it 20:59:33 itidus20: What's wrong with Finland? 20:59:34 shachaf: hey you've heard of my theory too? 20:59:36 we can both agree that they're crazy 20:59:40 ais523, with toy problems, sure. 20:59:44 indeed 20:59:49 oerjan: Which theory? 20:59:49 maybe from me, i don't recall 20:59:50 Phantom_Hoover: it's an experimental language, sure 20:59:53 It's not used for formally-verified programs. 20:59:55 just because a language has a purpose, doesn't mean it's good at it 20:59:57 shachaf: its explained by [...] notation :-D 21:00:02 It's an experimental dependently-typed language. 21:00:05 shachaf: that agda is named after a hen in a swedish song. 21:00:15 `log finland is very 21:00:19 SWEEEEEEEEEDEEEEEEEEN 21:00:23 -!- zzo38 has quit (Remote host closed the connection). 21:00:29 the odds are low on this working 21:00:43 It's not used for formally-verified programs. 21:00:43 2011-12-15.txt:20:18:20: -!- Gregor changed the topic of #esoteric to: on a side note, [...] finland is very depressing and a bit of a gulag | http://codu.org/logs/_esoteric/ 21:00:48 https://github.com/larrytheliquid/Lemmachine, for one. 21:00:53 `pastelogs finland is very 21:00:58 I don't know how much validation is involved there, though. 21:01:03 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.576 21:01:13 There's also that Agda FRP implementation that compiled to JS. 21:01:24 Hmm, OK. 21:01:31 shachaf "2011-12-15.txt:20:17:39: on a side note, someone in a distant chatroom suggested to me that finland is very depressing and a bit of a gulag" 21:01:36 But I'd still say it's wrong to call that its primary purpose. 21:01:50 Also: depressing! You must have heard wrong. 21:01:58 It's very dark and wet right now, that much is true. 21:02:04 Phantom_Hoover: Also http://www.e-pig.org/epilogue/?p=1098 is written in Agda. 21:02:17 (As is a bunch of the stuff on Epilogue, but anyway.) 21:02:18 fizzie: it wasnt a finlander who said that.. rather a notorious troll 21:02:47 itidus20: is itidus21 a troll? 21:02:55 Oh using [...] to intentionally misquote people. 21:02:55 fizzie: So it is, in fact, a gulag? 21:03:09 ah, I see 21:03:10 Gregor: i didn't have to say it in the first palce 21:03:12 ^place 21:03:24 i am a contaigen of the words anyway 21:03:28 elliott: No, it's a matrix of solidity. 21:03:39 ^contagion 21:03:43 "Queen Victoria: We are [...] amused." 21:03:56 `? Ngevd 21:03:59 ​7oX...p)(ѳU_Al.+W.q.hYx\Z.+ކ⏡p/.ہqͶ#..o.8.:.T2>..8: ..<➟S{tl҅xz,.d17.2HYwBw*:-t...; 21:04:01 elliott: "-- hence transf., any place or political system in which the oppression and punishment of dissidents is institutionalized" -- well, I... guess, arguably. 21:04:09 Oh, that makes me feel so much better 21:04:14 itidus20: See, Finland is a gulag. 21:04:24 `? Ngevd 21:04:27 x/Ԇ".7oB&<0.~!....8lc~.5ꈘ܃.0...?]@V. \ .$盏w..;wmن$.T.SYP6 .U>[َfޘu.ަ(G'4_Q.].1F0.ҁ.."ƽ \ .>}s \ `w.boJ.=.)"$.bCKGن͆{(Zjߎmk.x{%qjְɶ.3,.RFeoyԚD...@+Q4Rz`֮|. #>Z41?DO\\.h \ ԟK.PգmCIw.(X.Yȷ.}m.gL?x)gE-.N90f"hk') 21:04:34 Truly Ngevd. 21:04:49 `? Gregor 21:04:52 Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible. 21:05:02 `? fungot 21:05:02 Ngevd: this will see the final shutdown and to allow non-unix-philiacs a review might help to keep track of all their very different from clim? " segmentation violation". 21:05:04 fungot cannot be stopped by that sword alone. 21:05:12 `? EgoBot 21:05:14 EgoBot? ¯\(°_o)/¯ 21:05:23 `learn EgoBot is my arch-nemesis. 21:05:25 I knew that. 21:05:38 `? glogbot 21:05:40 glogbot? ¯\(°_o)/¯ 21:06:13 `? lambdabot 21:06:15 lambdabot? ¯\(°_o)/¯ 21:06:33 `? elliott 21:06:33 `learn glogbot is a snitch, don't trust it. 21:06:36 elliott wrote this learn DB, and wrote or improved many of the other commands in this bot. He probably has done other things? 21:06:52 I knew that. 21:06:53 Glögbot, the glogbot with a Christmas theme. ("Glögg is the term for mulled wine in the Nordic countries (sometimes misspelled as glog or glug); (in Swedish and Icelandic: Glögg, Norwegian and Danish: Gløgg, Estonian and Finnish: Glögi).") 21:07:05 `? ais523 21:07:08 ais523 is ais523. This topic may retroactively become more informative if or when Feather is invented. 21:07:13 i was trolling by quoting another troll. it will pass 21:07:20 `? itidus20 21:07:20 -!- lifthrasiir has joined. 21:07:22 itidus20 is horny 60 year olds having cybersex in minecraft 21:07:27 itidus20: you mean that you are itidus21? 21:07:35 `? itidus21 21:07:37 itidus21 just made some instant coffee. 21:07:44 `? Phantom_Hoover 21:07:46 Phantom_Hoover is a true Scotsman and hatheist. 21:07:51 `? Phantom__Hoover 21:07:54 Phantom__Hoover can't decide what an appropriate number of underscores is. 21:08:00 i finally figured out why my irc connection to freenode is blocked while other network seemed fine 21:08:03 `? CakeProphet 21:08:05 ​:> 21:08:09 Dammit guys, that's not what hatheist means. 21:08:14 `log new to irc 21:08:20 lifthrasiir: welcome back 21:08:20 2011-07-29.txt:21:10:24: I assume you're new to IRC? 21:08:24 tch 21:08:24 Did I break Hackego? 21:08:26 `log new to irc 21:08:28 elliott: long time no see. heck. 21:08:33 2009-10-05.txt:02:11:21: very new to IRC ... i don't understand why 21:08:41 lifthrasiir: did it have anything to do with mibbit? 21:08:44 i distracted him 21:08:49 if not, what was it? 21:09:02 it turned out that port 7777 was open but 7000 was not open in some router through my machine 21:09:08 Doens't mean what? 21:09:14 lifthrasiir: Apparently this channel is now dedicated to effing with bots. 21:09:16 `learn lifthrasiir is shunned by the rest of his country for being no good at Starcraft. 21:09:17 -!- MSleep has changed nick to MDude. 21:09:19 I knew that. 21:09:27 I think oerjan is just making these up by now. 21:09:32 It's just a hunch though. 21:09:36 as 7777 (commonly used for irc+ssl) was fine i assumed that 7000 (also commonly used) was also fine 21:09:49 elliott: you think? 21:09:51 Is it jsut hat heist without a space? 21:09:51 silly me 21:09:52 `learn Taneb is not actually Ngevd, no matter what you may have heard. 21:09:54 I knew that. 21:10:20 What's the difference between Taneb and Ngevd? 21:10:27 oerjan: oh, starcraft is now the past. lol (or so) is the new starcraft. 21:10:35 I'm really good at lol. 21:10:39 lol lol lol lol lol roflmao lo 21:10:40 l 21:10:45 Fuck, I messed up. :( 21:10:49 Gregor: i need to detach from this channel because although i came here with best intentions, i can't really follow anything which is on-topic 21:11:03 so i start focusing on bots instead 21:11:05 shachaf, Ngevd is what I call myself when I start thinking of myself as Taneb 21:11:11 elliott: you will be punished by lolcats then ;) 21:11:24 `pastelogs `log 21:11:25 I think my brother plays lol 21:11:31 lifthrasiir: Ah yes, the traditional cats of punishment that laugh manically while they rip your inferior limbs apart. 21:11:31 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.13446 21:11:37 lol is... kind of a dark game?? 21:11:46 I'm not much good at it 21:14:37 `learn lifthrasiir is shunned by the rest of his country for being no good at League of Legends. 21:14:39 I knew that. 21:14:50 accurate updated information. 21:15:10 from the beginning i had a great misconception of what an esolang is. i thought it was a homebrew lang. 21:15:22 but no middle ground really exists 21:15:31 is this farewell :'( 21:15:34 no. 21:15:38 yay 21:15:48 but i should try not to actively hijack :D 21:18:31 ^echo ping 21:18:32 ping ping 21:18:37 Good 21:23:44 it seems to me that hello world is not a good hello world for the brainfuck language 21:24:48 that the task of displaying the text hello world is taken arbitrarily with no regard for the complexity of the task in a given language 21:25:01 but it seems to provide a great milestone and benchmark 21:25:21 and a rosetta stone of sorts 21:27:25 well, the idea of a hello world is that it typically contains all content required to run a program of one command 21:27:31 but in some cases, it fails, such as BF and PHP 21:27:35 and INTERCAL 21:32:17 like a boob about brainfuck would not do well to begin with hello world in the first chapter 21:32:21 ^book 21:36:18 now you've done it, sent everyone off thinking about boobs 21:39:16 hmm 21:39:25 how do i execute a bf program in here? 21:39:42 ^bf ,[.,]!Like so 21:39:42 Like so 21:39:59 ^bf . 21:40:12 ^bf .! 21:40:18 ^bf ,! 21:40:24 itidus20: printing a zero doesn't show up in irc 21:40:29 ahhh 21:40:37 many small control characters are excluded 21:40:40 ^bf +++++.! 21:40:40 21:40:48 ^bf +++++++++++++++++++++.! 21:40:48 21:40:59 ^bf +++++++++++++++++++++++++++++++++++++++++++++++++++++.! 21:40:59 5 21:41:05 yay 21:41:14 itidus20: you don't need the ! part if you're not using , 21:41:29 it's for the input to the program 21:41:41 i misinterpreted the ! as an EOF delimeter 21:41:48 it sort of is 21:41:54 ah i see 21:42:47 It seperates input from the source. 21:44:02 ^bf ,>[,>]<.[<.]!test 21:44:02 t 21:44:33 ^bf ,>[,>]<.[<.]!tesc 21:44:33 t 21:44:43 hehe. ok i will let it be for now 21:44:53 itidus20: the first loop is never run, and the second runs off the tape 21:45:06 ^bf ,[>,]<[.<]!testing 21:45:06 gnitset 21:45:42 ^show rev 21:45:43 >,[>,]<[.<] 21:45:48 afk 21:46:32 fungot: Your 'rev' wins a "useless use of >" award. (Admittedly it's only useless because of a tape without a left edge.) 21:46:32 fizzie: ohhh that editor.... oh, actually caring about the term type? can't decide if an hp attempts to lock up directly after i found the following net discussion gave me a *truly* useful core dump). 21:47:02 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 21:52:42 -!- elliott has quit (Ping timeout: 240 seconds). 21:54:02 ^bf <,[.,]!What, no left edge? 21:54:02 What, no left edge? 22:00:11 Well, no right edge either. 22:00:18 (It's a loo.) 22:02:55 ,,.[,,.]!test2 22:02:59 oops 22:03:04 ^bf ,,.[,,.]!test2 22:03:05 et 22:03:41 ^bf ,[>,]>+[>+>[<->[-]]<]>>[.>].!...what's here? 22:03:41 ..what's here? 22:03:50 Round and round we go. 22:04:24 ^bf ,,.[,,.]!test2 apdhfognteyhhodmse 22:04:24 et phonehome 22:05:50 DO ^bf and !bf differ in behaviour at all? 22:06:42 Very probably; at least in the tape length (mine is I think a loop of 1000 cells) and timing restrictions. 22:06:55 Perhaps also in behaviour on "EOF". 22:07:38 Also I don't even know if !bf does the "input after !" thing. 22:09:52 !bf is EgoBF, my impl. 22:10:03 and !bf doesn't handle cutting of infinite output *whistles innocently* 22:10:29 ^bf ,[.]!a 22:10:29 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ... 22:10:48 !bf ,[.]!a 22:10:54 Yup, appears not to support ! 22:11:13 !bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[.] 22:11:40 !bf ----[>+<----]>++. 22:11:40 A 22:11:41 What is EgoBot written in? 22:11:44 !bf ----[>+<----]>++[.] 22:11:48 !bf ,[.,]!hm... 22:12:00 Ngevd: http://codu.org/projects/egobot/hg/ 22:13:21 Mainly C, possibly some other languages? 22:14:16 The IRC component is in C, the bridge/scaffolding is mostly bash, and the languages are implemented in various things. 22:15:51 I'm not a one-language kind of lunatic 8-D 22:16:11 -!- sebbu2 has joined. 22:16:12 -!- sebbu2 has quit (Changing host). 22:16:12 -!- sebbu2 has joined. 22:16:14 but the other kind 22:16:43 -!- derdon has joined. 22:16:57 I don't know enough languages to be any of those kinds of lunatics 22:17:04 I don't know enough languages. 22:17:12 It's written in all the languages. All of them. 22:17:55 -!- sebbu has quit (Ping timeout: 244 seconds). 22:18:25 My ultimate plan is still to eventually merge all the functionality of EgoBot into HackEgo. 22:18:44 And call the result HackEgoBot? 22:19:02 Mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm probably just EgoBot. 22:19:09 * HackBot :No such nick/channel 22:19:12 That's free too. 22:20:20 fizzie: The code base is actually called HackBot, but I call it HackEgo on FreeNode to correspond to my ego-stroking naming convention 22:20:25 EgoEgo 22:20:26 Gregor: I know exactly how you could do that . 22:20:54 Gregor: you could make a bot that allows you execute arbitrary code in a Unix-like sandbox with revision control. 22:20:57 +to 22:20:59 Gregor: You certainly know how to put the "ego" back in Gregor. 22:21:07 ^bf +>[->],.!! 22:21:07 ! 22:21:20 !bf +>[->],.!! 22:21:23 kallisti: AMAZING 22:21:28 yes 22:21:33 I intended that to go around the entire tape 22:21:36 No idea if I did that right 22:21:37 kallisti: I'm just too lazy to actually throw all the crap that's in EgoBot into HackEgo's env. 22:21:46 Sgeo: The loop will never run. 22:21:55 Oh 22:21:58 Sgeo: After "+>", you're in a zero cell. 22:22:12 Gregor: so you want addinterp and friends? 22:22:15 ^bf +[->],.!! 22:22:15 ! 22:22:28 Ngevd: only runs once 22:22:42 ^bf +[->-],.!! 22:22:47 ...out of time! 22:22:48 ^bf +>-[>-],.!! 22:22:48 ! 22:22:57 kallisti: Well, and all the languages. 22:23:04 right 22:23:08 !numberwang 1623 22:23:09 That's numberwang! 22:23:14 Did mine work as intended? 22:23:18 ^bf >-[>-],.!! 22:23:22 ! 22:23:35 ^bf +>,[>-]>.!! 22:23:36 ! 22:23:36 I'll take that as a no, I think 22:24:03 I think mine did? 22:24:40 Ngevd: your last one didn't halt in reasonable time 22:24:55 oerjan: But it certainly did "go around the entire tape". 22:25:02 Who says the tape is reasonably sized? 22:25:04 well that's true. 22:25:11 Sgeo: fizzie 22:25:21 ^source 22:25:21 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 22:25:34 More importantly, there are virtually no implementations in which the tape forms a loop X_X 22:25:58 Sgeo: See, it's aaa** cells. And executes aaaaaa***** cycles. 22:26:09 Sgeo: your ^bf +[->-],.!! worked i think 22:26:18 or wait 22:27:04 well in some way 22:27:41 Gregor: fungot's does 22:27:42 oerjan: index: sbin/ fsck/ pass2.c 4.3bsd-reno fsck fix) date: 18 sep 90 10:46:57 pdt from: ww 22:27:53 oerjan: Brain asplote. 22:27:54 and i believe my last one proves it definitely 22:28:43 by actually looping around between reading and printing the character 22:29:06 Gregor: Certainly there are; fungot, and bfvga. And I'm pretty sure there are other low-level ones that use an 8-bit or 16-bit tape pointer which wraps around "naturally", and a correspondingly sized tape. 22:29:06 fizzie: a crying shame too. that would explain what this note was written ( unix) the 3 a.m. sunday to: 22:31:46 I must've gotten the loopy-tape idea from *somewhere* when writing the fungot one. 22:31:47 fizzie: posted as context diffs. " i don't maintain or even functional... 22:33:16 wow I feel like complete shit. 22:33:20 I wonder how that happened 22:33:44 probably alien abduction. 22:34:11 -!- Phantom_Hoover has joined. 22:34:57 "Too many fingers / have I got in my hand / I think there happened a creature / an alien creature" -- paraphrasing some Finnish song lyrics. 22:35:23 It doesn't really translate. 22:35:25 fizzie: it could also be too much vodka. 22:36:14 new haskell platform released 22:36:43 ("Liikaa sormia / ompi mulla kädessä / taisi käydä olio / avaruusolio.") 22:36:58 ompa pa 22:37:19 Surely Finns don't drink vodka? 22:37:29 We even have a quasi-known brand. 22:37:42 http://en.wikipedia.org/wiki/Finlandia_Vodka 22:37:54 But that stuff's 60% water! 22:38:07 and 40% alcohol? 22:38:10 Yes. 22:38:13 haha 22:38:27 I've heard that drinking diluted ethanol doesn't actually give a hangover 22:38:34 although it seems quite a pointless activity 22:38:46 Phantom_Hoover: There's a variant of http://en.wikipedia.org/wiki/Koskenkorva_Viina that's only 40% water. 22:38:55 Better. 22:38:58 ais523, um no? 22:39:01 You get drunk? 22:39:44 Phantom_Hoover: but what's the point in getting drunk if you don't even get the enjoyment of drinking alcoholic drinks in the process? 22:39:49 I thought being drunk was a /bad/ thing 22:40:03 Nnnnnnno. 22:53:05 -!- Patashu has joined. 23:04:51 * kallisti has taken a liking to porter ale. 23:05:02 tastes pretty good for a beer. 23:07:51 -!- salisbury has quit (Quit: Leaving). 23:20:26 -!- Ngevd has quit (Ping timeout: 244 seconds). 23:25:32 If I smile at a Station V3 strip, can I link it? 23:25:40 no. 23:25:45 No. 23:25:49 yes 23:25:59 http://www.stationv3.com/d/20111217.html 23:26:08 monqy: WHAT HAVE YOU DONWE 23:26:11 (monqy means no, since I know you have no sense of monqy— goddamn it.) 23:26:30 monqy, please don't say things near Sgeo, he is stupid. 23:27:02 Sgeo: "WHAT MIND CONTROL HELMET" HAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA 23:28:08 Who says that I couldn't have guessed that monqy was joking and I just deliberately took the yes literally? 23:28:25 remember what happened with homestuck 23:29:37 Just because my monqy-detector failed once doesn't mean it always fails. 23:33:17 http://imgur.com/37cmF :( 23:33:59 remember kids, if you are being sarcastic the audience has a right to choose to take you literally, with all resulting consequences. 23:34:19 monqy, that little stunt accounted for more than half of my lambdabot messages this morning. 23:34:22 I hope you're happy. 23:34:32 overjoyed 23:35:16 Phantom_Hoover, I sent you no @tells. Go blame elliott or something 23:35:42 Yes but please consider poor lambdabot when saying stupid things while elliott's in the channel. 23:35:49 your puny weapons are no match for our foodstuff 23:36:52 olsner, see you should move to Finland?? 23:37:17 Then when Sweden invades to get you back, you can all armour yourselves with bread. 23:37:18 Phantom_Hoover: what, so he would starve to death????? 23:37:39 Also, we can nuke them and nothing of value will be lost. 23:44:06 http://en.wikipedia.org/wiki/File:Fortifikation_(Migr%C3%A4ne).jpg 23:44:12 I forgot how terrible this is. 23:51:19 so, what's the appropriate internet-meme reaction to Chuck Norris advertising World of Warcraft? 23:53:25 i propose a new brainfuck variant which consists of nothing but the word Chuck repeated over and over 23:53:47 I can see a problem with this actually.. 23:53:48 ais523: "I don't always do advertisements. And when I do, they would have rather had Chuck Norris." 23:54:04 itidus20: that it could only have one command? 23:54:11 or that Phantom_Hoover would replace your brains with a brick? 23:54:21 yeah.. it needs a second token.. 23:54:24 Use 'Chuck', 'Norris', binary code. 23:54:45 I dare you, motherfucker. I double dare you. 23:55:19 so instead is the 'Chuck!' 'Chuck Chuck!' 'Chuck Chuck Chuck!' [...] 'Chuck Chuck Chuck Chuck Chuck Chuck Chuck Chuck!' 23:55:41 A logic language based on Chuck Norris facts. 23:57:36 i don't see the problem. when chuck norris programs, he obviously doesn't need more than one command. 23:58:07 aha 23:59:54 hmm, what might be interesting would be an evolutionary computing language