00:11:08 `fetch http://oerjan.nvg.org/esoteric/shove/shove 00:11:11 2013-02-07 00:11:10 URL:http://oerjan.nvg.org/esoteric/shove/shove [4053/4053] -> "shove" [1] 00:11:13 `run chmod a+x shove 00:11:16 No output. 00:11:17 `run mv shove bin/shove 00:11:20 No output. 00:16:58 -!- zzo38 has joined. 00:18:17 oerjan: modified to only print output? 00:18:55 also to take a program on command line by default 00:19:18 -!- DHeadshot has joined. 00:19:28 `run echo '"Hello, world!"S' >test 00:19:31 No output. 00:19:58 `run shove -d -f test #Now with options 00:20:18 `cat test 00:20:19 ​"Hello, world!"S 00:20:29 No output. 00:20:37 `run yes | shove -d -f test #Now with options 00:20:39 ​ \ actual size: (16, 1), pos: (0, 0) \ rotated for viewing; pos: (0, 0), dir: 0 \ stack: \ *Hello, world!"S \ \ actual size: (16, 1), pos: (15, 0) \ rotated for viewing; pos: (15, 0), dir: 0 \ stack: {Hello, world!} \ "Hello, world!"* \ Hello, world! 00:22:22 oh and the debugger now waits for stdin even if it's from a file. 00:23:59 hm i wonder 00:24:27 `run shove 'v' '>"Test"S' 00:24:29 Test 00:25:06 i wasn't sure if i'd made it use one line per argument or not. 00:31:41 -!- ais523 has quit. 00:39:44 `run shove '" '\''Hello, world"'\''S"(' 00:39:45 Unterminated string. at /hackenv/bin/shove line 140. 00:40:07 `run echo '" '\''Hello, world"'\''S"(' 00:40:08 ​" 'Hello, world"'S"( 00:40:17 `run shove '" '\''Hello, world"'\''S(' 00:40:19 Unterminated string. at /hackenv/bin/shove line 140. 00:40:49 `run shove '" '\''Hello, world'\''S"(' 00:40:50 No output. 00:40:57 darn 00:41:06 `run shove '" '\''Hello, world'\''S"(' 00:41:08 No output. 00:41:26 `run echo '" '\''Hello, world'\''S"(' 00:41:27 ​" 'Hello, world'S"( 00:42:18 `run echo '" '\''Hello, world'\''S"S' 00:42:20 ​" 'Hello, world'S"S 00:42:29 `run shove '" '\''Hello, world'\''S"S' 00:42:30 ​ 'Hello, world'S 00:46:41 shachaf: do you know anything about http://fpcomplete.com/ 00:47:00 kmc: i know spj is investing in them or something 00:47:08 and snoyman works there? 00:47:11 and johnw works there 00:47:12 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 00:47:14 interesting 00:47:26 not sure what they actually do 00:47:40 there is some haskell school thing(?) maybe online(?) they're running 00:47:53 Massive Online Monad Tutorial 00:50:43 kmc: I know pretty much what elliott knows. 00:51:01 I think they're making an online Haskell IDE or something? 00:52:23 `run shove ' v' 'v V" olleH"<' '>", world!"S' 00:52:25 No output. 00:52:32 wtf now again 00:52:50 ok 00:52:56 the website looks... slick in the wrong ways 00:53:01 but i guess they have some legit people involved 00:53:58 oh duh shove is evil :P 00:54:07 Functional Programming technology 01:00:24 `run shove '" ,olleH"V v' ' S"!dlrow"<' 01:00:26 Hello, world! 01:02:05 My idea of some music format: The header is sixteen frequencies of the notes of the lowest octave, followed by eight waveforms of thirty-two frames each, where each frame is four bits. And then, follow by commands. The frequencies are converted to periods when it is loaded. Durations are also converted to periods. 01:02:06 zzo38: You have 1 new message. '/msg lambdabot @messages' to read it. 01:02:12 ok that was slightly amusing 01:02:27 0xxx.xxxx = note playing. 0111.1111 = rest. 01:03:16 `cat bin/log 01:03:18 ​#!/bin/sh \ cd /var/irclogs/_esoteric \ if [ "$1" ]; then \ grep -P -i -- "$1" ????-??-??.txt | shuf -n 1 \ else \ file=$(shuf -en 1 ????-??-??.txt) \ echo "$file:$(shuf -n 1 $file)" \ fi 01:03:24 1000.0xxx = select waveform. 1000.1xxx = select waveform with phase reset. 1001.0xxx = channel start intro. 1001.1xxx = channel start loop or go to loop. 1010.xxxx = volume. and so on 01:03:42 Including duration, duration MRU, and local repeats. 01:03:48 Now is this good enough, do you think so? 01:03:52 ?messages 01:03:52 shachaf said 1d 4h 20m 13s ago: CodensityAsk reminds me of type MendlerAlgebra f c = forall a. (a -> c) -> f a -> c (except that it's different) 01:04:27 hi lambdabot 01:05:07 zzo38: mm, thinking carefully about the purpose of this music format may be a good idea. 01:05:36 tswett: Just that I would find it easy to implement in C with SDL, and to create music files of that format with CsoundMML. 01:05:54 Yeah, but what are you trying to represent? 01:06:00 Do you want it to be able to express arbitrary sounds? Encode the waveform. To express arbitrary sounds in a space-efficient manner? Encode the program that generates the waveform. 01:06:26 shachaf: What is MendlerAlgebra for, though? It is not a functor 01:06:34 `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail 01:06:37 01:03:48: Now is this good enough, do you think so? \ 01:03:52: ?messages \ 01:03:52: shachaf said 1d 4h 20m 13s ago: CodensityAsk reminds me of type MendlerAlgebra f c = forall a. (a -> c) -> f a -> c (except that it's different) \ 01:04:27: hi lambdabot \ 01:05:07: zzo38: mm, thinking carefully about 01:07:06 tswett: encode the program that generates the music format 01:07:11 tswett: Well, there is the balances of simplicity, speed, compact, etc 01:07:13 @google MendlerAlgebra 01:07:15 http://www.haskell.org/haskellwiki/Catamorphisms 01:07:15 Title: Catamorphisms - HaskellWiki 01:07:34 "Mendler and the Contravariant Yoneda Lemma" is this a children's novel 01:08:15 Sure also such things as NSF and MOD and so on usable, but I don't quite easily enough find the C program to play it properly using SDL 01:08:32 `run printenv 01:08:34 TERM=linux \ http_proxy=http://127.0.0.1:3128 \ HACKENV=/hackenv \ PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin \ PWD=/hackenv \ LANG=en_NZ.UTF-8 \ HOME=/tmp \ SHLVL=1 \ _=/usr/bin/printenv 01:09:43 monqy: do you know what an end is 01:09:43 zzo38: *nod* I wonder, then, is there any particular reason you're not just using WAV files? 01:09:51 shachaf: what's an end 01:10:13 monqy: i don't know :'( 01:10:17 oh 01:10:18 In category theory, an end of a functor is a universal dinatural transformation from an object e of X to S. 01:10:50 ok 01:10:56 `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -2 01:10:59 tswett: WAV files will be too large and maybe wrong sample rate 01:11:00 01:10:50: ok \ 01:10:56: `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -2 01:11:17 Also we would want looping of music 01:11:25 monqy: i was hoping you could tell me what it means 01:12:03 So yeah. I was under the impression that the purpose of Ithkuil was to express normal amounts of information with small amounts of text; it turns out the purpose is actually to express large amounts of information with normal amounts of text. 01:12:12 `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/.*> //' #Worst kimian quine ever? 01:12:16 ​//' #Worst kimian quine ever? 01:12:21 oops :P 01:12:32 `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/.*?> //' #Worst Kimian quine ever? 01:12:36 ​//' #Worst Kimian quine ever? 01:13:22 `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^>]*> //' #Worst Kimian quine ever? 01:13:25 ​`run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^>]*> //' #Worst Kimian quine ever? 01:13:30 there you go. 01:14:09 zzo38: *nod* May I ask why they're too big? 01:14:10 I don't think it is a Kimian quine though; I think a Kimian quine is one which the system's error message is the same as the program text. But I can see how it works 01:14:12 `echo bin/quine 01:14:14 bin/quine 01:14:26 zzo38: oh right. i guess i meant cheating quine then 01:14:27 oops 01:14:32 `cat bin/quine 01:14:34 cat: bin/quine: No such file or directory 01:15:57 tswett: You know... 01:15:58 `run echo 'cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed '\''s/[^>]*> //'\'' #Worst cheating quine ever?" >bin/quine 01:16:00 bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file 01:16:28 `run echo 'cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed '\''s/[^>]*> //'\'' #Worst cheating quine ever?' >bin/quine 01:16:31 No output. 01:16:50 `run quine #Also the best. 01:16:52 bash: /hackenv/bin/quine: Permission denied 01:17:02 `run chmod a+x bin/quine 01:17:06 No output. 01:17:08 `run quine #Also the best. 01:17:11 ​`run quine #Also the best. 01:18:06 zzo38: because you have either a large number of music files or a significant space limitation? 01:18:25 `run quine | rot13 01:18:28 No output. 01:18:32 oops 01:18:37 `run quite 01:18:39 bash: quite: command not found 01:18:40 `run quine 01:18:43 ​`run quine 01:18:49 I also do not know any MML compilers for MOD and S3M formats (neither format can do desynchronization, and way of combining blocks in those formats makes it difficult to work with too) 01:18:51 So, like, how does it work? 01:18:53 `cat bin/rot13 01:18:54 echo "$@" | tr a-zA-Z n-za-mN-ZA-M 01:19:01 `run quine | rot13 01:19:04 No output. 01:19:13 wtf is wrong with that 01:19:22 oh of course 01:19:34 `run rot13 $(quine) 01:19:38 ​`eha ebg13 $(dhvar) 01:19:54 tswett: Well, yes those are reasons too. 01:19:54 `run echo aru | rot13 | rot13 01:19:56 No output. 01:20:06 tswett: it simply finds the last line in the logs and removes everything up to the nick 01:20:23 `run rot13 `quine` 01:20:26 ​`eha ebg13 `dhvar` 01:20:29 oh, I see 01:20:35 zzo38: then I don't know what the reason you were referring to is. 01:20:39 `run echo $(quine) 01:20:43 ​`run echo $(quine) 01:20:44 oerjan: this is a beautiful program 01:20:46 oerjan: mm. 01:20:48 `quine 01:20:51 ​`quine 01:21:00 tswett: Those are what I refer to, too. 01:21:05 `quine the first 01:21:08 ​`quine the first 01:21:15 Hm, I fail at, like... doing this correctly. 01:21:18 `quine 01:21:18 brief 01:21:21 brief 01:21:25 `quine the first 01:21:25 `quine the second 01:21:28 ​`quine the second 01:21:28 ​`quine the second 01:21:30 There we go. 01:21:37 nooooo 01:21:58 oerjan: it should make sure the line starts with a ` at least 01:23:13 elliott: oh? i thought the failure modes were part of the charm. 01:24:05 tswett: Do you know of the C libraries to play the other formats on SDL, though, and of the MML compiler into some such format? 01:24:22 Nope. 01:24:28 HackEgo: `echo hi 01:24:38 it doesn't do such fancy things... 01:24:53 `cat bin/quine 01:24:54 oerjan: ostensibly 01:24:54 cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^>]*> //' #Worst cheating quine ever? 01:25:27 no don't fix it 01:25:35 oh ok 01:27:33 did ais523 say shove was TC? 01:28:00 I don't think so 01:28:46 elliott: Shove is TC, I think; you can compile Underload into it 01:28:49 proof by ais523 said so 01:32:57 Do you know if a trigger in SQL is allowed to call itself? 01:35:01 kmc: UTF-16 apparently had better performance than UTF-8 for "text" 01:35:08 They ported it and then decided to stick with -16 01:35:12 interesting 01:35:16 Apparently it had to do with the four-way branch or something? 01:35:19 I don't know. 01:35:40 was that in realistic situations or synthetic microbenchmarks? 01:35:53 Well, it probably also depends on what text you are encoding and on the program which uses it, and on other things. 01:36:35 I don't know the details. It's just what I overheard from edwardk (it was a SoC project). 01:36:36 what's the internal structure of text, again? finger tree? rope? 01:36:38 flat? 01:36:46 Just a plain ByteArray 01:36:52 Also the Unicode C library they use whose name I've forgotten uses UTF-16. 01:37:02 * elliott wishes there was a good rope library for Haskell. 01:37:03 ICU? 01:37:09 Yes, ICU was a big consideration. 01:37:20 it seems like a good data structure would be a finger tree of ~few-kB UTF-8 chunks 01:37:38 edwardk has a UTF-8 finger-tree string implementation on Hackage (in several different packages). 01:37:42 annotated with things like the number of codepoints in each 01:37:48 mm 01:37:50 The problem is he doesn't care about it to the point where he actually didn't realise it existed until I pointed it out. 01:37:58 haha 01:38:05 that's amusing 01:38:23 He cares about it for his parsers. 01:38:25 * elliott thinks ~few-kB might be a bit too big for a persistent structure. 01:38:28 If you're modifying it constantly. 01:39:05 maybe smaller at the ends 01:39:11 anyway it's something you would have to tune 01:39:19 i don't claim any a priori insight about what the best size is 01:39:42 You could annotate it with more than codepoints; that would be pretty cool 01:39:50 Might not be worth the cost, though. 01:40:03 you could annotate it with an arbitrary monoid 01:40:04 so easy 01:40:07 Not sure codepoints by itself is useful. Random access by codepoint isn't a particularly interesting operation. 01:40:10 yeah 01:40:15 'width in terminal' would be a fun one 01:41:05 I wonder if (forall w. Monoid w => (UTF8String -> w) -> Rope w) would be a good string representation, where "w" is the annotation. 01:41:19 Hey, Rope would even be a Functor then. (The Functor instance would be one you don't actually want for string manipulation, but still.) 01:41:33 I guess if you get that generic it might as well be Rope w UTF8String. 01:41:50 Hmm, I guess you can define (Rope w a) as a w-annotated FingerTree of vectors of a. 01:42:10 That way type String = Rope Whatever Char is a proper Functor. 01:42:23 Except for the part where it wouldn't be since you want the vector to be unboxed and that requires an Unbox typeclass and stuff. 01:42:26 * elliott sigh 01:43:20 It'd be nice if Vector could be totally polymorphic and somehow adapt itself to be unboxed whenever you use it on a type that can be unboxed. 01:44:38 isn't that one of the motivating examples for type families 01:44:39 That seems something that Haskell just doesn't do, and might be difficult even if another programming language that can be made up to do such things, would still be difficult, if you want to have adapt to box/unboxed. However, an idea is to use macros somehow. 01:45:07 Type families might do it but you still would have to write it for every one, rather than having it done automatically. 01:45:07 data instance Vector (a,b) = VPair (Vector a) (Vector b) -- or such 01:46:51 But if you write "type family" then you cannot write "data instance" on it; it has to be "type instance" even though they should allow "data instance" in such cases too, they don't. (But it is good and correct that "data family" don't allow "type instance") 01:47:56 zzo38: You can always just define a separate data type. 01:48:39 shachaf: Yes I know so, and that is a way to work-around, but still I think should be allowed 01:48:54 I'm not sure that it should. 01:49:00 But anyway did you submit a bug report and/or patch? 01:49:16 Macros don't work. 01:49:21 Since you want a Functor instance. 01:49:35 kmc: The problem is you can't write (a -> b) -> Vector a -> Vector b 01:49:39 Because what constructors does it have? 01:49:40 No. I have made some suggestion of various things but mostly nobody wanted it 01:49:46 So you need a typeclass for "something you can construct a Vector out of" 01:49:48 So you lose Functor 01:49:58 elliott: C macros won't work, of course; I don't mean C macros. 01:49:58 yes 01:50:36 What you want is a "default typeclass instance" with all sorts of awful overlapping instances stuff with the understanding that it's OK because they all have the same semantics. 01:50:43 But I don't think there's a way to make it properly with GHC. 01:50:51 Functor instance is derivable and if so will be the only correct way to do it, otherwise it is not possible to be done. 01:51:04 elliott: Yes, it is not possible to do properly with GHC that is what I meant. 01:51:16 why is dr strangelove so wonderful 01:51:18 (Unless they added an extension to do it properly, but that might be very difficult) 01:51:42 -!- Arc_Koen has quit (Ping timeout: 264 seconds). 01:57:48 -!- Arc_Koen has joined. 02:05:29 `shove '"'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"S)'S) 02:05:31 ​"'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"S)'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"'"'"'"!"S'S)"S)'S)"S)'S)"S)'"'"'"!"S'S)"S)'S)"S)'S)"'"'"!"S'S)"S)'S)"S)'"'"!"S'S)"S)'S)"'"!"S'S)"S)'"!"S'S)"!"S! 02:06:47 he didn't joke when he said ' and " nested inside each other 02:07:12 nice 02:07:45 `shove '"'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"S)'S)"Hm"S 02:07:47 ​"'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"S)'"'"'"'"!"S'S)"S)'S)"S)'S)"S)'S)"'"'"'"!"S'S)"S)'S)"S)'S)"S)'"'"'"!"S'S)"S)'S)"S)'S)"'"'"!"S'S)"S)'S)"S)'"'"!"S'S)"S)'S)"'"!"S'S)"S)'"!"S'S)"!"S!Hm 02:08:15 and ) (shoving in the same direction as you're moving seems to behaving relatively intuitively 02:08:18 *+) 02:08:27 *+be 02:10:56 * oerjan just realized the semantics of shoving means it is impossible to delete characters from the grid 02:11:24 * elliott suspects oerjan understands this language better than ais523 does already. 02:11:47 * oerjan suspects that's a little early 02:12:01 especially given ais523 claimed to be able to compile underload to it 02:12:20 * elliott suspects that meant "there seem to be equivalent enough operations to do it" 02:13:04 ...i had trouble enough just concatenating "Hello, " and "world!" above 02:20:05 `run echo Testing | fueue '):[)$$6-%0~~[$~])~[)$~~~%~~)[[0[33 H])[)[H]]!][1)[)))($[[)[~~~~()+1])][0]$%~~1)][][)[)$%0[)[))$11~<<~:(~:< ]])[):] ]] ]]])] ] [1[1][[50]<:[[52]<:]][[54]<:[[56]<:]]]' 02:20:07 Testing 02:20:45 one has a slight hunch that simpler cats are possible :P 02:21:33 (this one is a translation from +[,.], as seen from just inside the loop 02:21:35 ) 02:22:59 is there no known fueue cat? 02:23:00 apart from that one I mean 02:25:13 fueue sure looks like a "tar pit" hm 02:25:28 elliott: i don't think i've ever bothered to make one 02:27:00 also EOF handling is a bit unspecified. the C interpreter is the only one which even handles it, by accident treating it as a negative number. which means the same as 0 for most purposes, since i have found no way to do input preserving a 3-way distinction. 02:27:34 oerjan: "By accident"? 02:27:43 oerjan: What, by just handing whatever getc() returns? 02:27:44 pikhq: or by default. 02:27:47 yeah. 02:28:22 Ah, yeah. Technically EOF can be anything in C so long as it's not confuseable for a character, but in practice it's -1. 02:28:22 the ocaml and haskell interpreters also do nothing special, which means they will raise exceptions. 02:28:39 pikhq: i think it's required to be < 0. 02:28:50 -!- Bike has left. 02:29:35 Ah, it is required to be negative. 02:30:05 i can distinguish 0 from EOF at the cost of identifying everything else with one of them. 02:31:14 (if i apply - first, EOF becomes positive and everything else becomes identified; if i apply % first 0 becomes 1 and everything else 0.) 02:31:15 how useful 02:32:46 incidentally there is probably no quick way to determine whether a number is negative or positive :P 02:33:10 (in general, not just at input) 02:35:45 maybe something with division could work, but fueue doesn't specify which way / rounds 02:36:06 Nor does C. :) 02:36:19 indeed 02:37:14 (the slow way is to use $ to make copies of blocks, which you then have to delete if the number is large positive.) 02:37:57 i assume <0 is treated as 0 there 02:38:54 oh hm wait... 02:39:07 scratch that, i just thought of a way 02:39:25 well at least constant number of arithmetic operations 02:40:32 (x^2 + 2*x+1)/(x^2 - 2*x+1) will be 0 iff x is negative. 02:41:51 (handling overflow left as an exercise for the reader.) 02:50:46 -!- WeThePeople has joined. 02:51:35 O no! I realized that in this Dungeons&Dragons game I was playing yesterday, they are leading us into a trap! That guard in the barn (even though they blocked the way we intended to get in, and they *knew* we would be coming the other way anyways), I thought it was a decoy but now I think it is actually a double bluff!! They left the copy of the delivery note there deliberately so that we would find it! 02:52:36 I think so far we have actually done exactly what they expected us to do. I wouldn't be too surprised if I found the cutlery which they left behind (why didn't they deliver that?) is cursed. 02:53:11 O no! 02:54:01 zzo38: Can I join your Dungeons&Dragons games? 02:54:48 Probably not; possibly due to your location. 02:55:32 You should move to California. 02:55:44 Alternatively, I could move to Vancouver? Or wherever it is you are. 02:55:45 No. 02:56:35 That is close enough. 02:57:04 too close?? 02:57:49 I might be in Victoria in Victoria Day, in the "Sushi Plus" Japanese restaurant. (in case you want to know what I am) 02:59:25 is Victoria Day the Canadian version of Victory Day 02:59:55 I don't know. 03:00:30 zzo38: I was in Victoria once. 03:00:31 But on Victoria Day I usually go to Victoria since it is just very close in Vancouver Island and takes only an hour or so on the ferry boat to get there. 03:00:45 I took the ferry! 03:00:55 Hmm, I'm not sure whether it was a ferry boat or a ferry airplane or what. 03:00:59 But it was definitely a ferry. 03:01:09 monqy: hi 03:01:12 ??? 03:01:18 hi shachaf???????? 03:01:19 OK,have you been to that restaurant? 03:01:30 monqy: did you learn about kan extensions in my absence............. 03:01:44 no but i learned about gosh what did i learn about 03:01:50 cheese sauce 03:01:52 monqy: or did you decide to "spill the beans" about galois connections 03:01:54 i learned about cheese sauce 03:02:10 monqy: "spill ur beans plz" 03:02:26 ok ok i found the recipe online but still 03:03:39 monqy: the beans recipe or the cheese sauce recipe 03:04:01 i didn't make beans 03:04:35 i had other stuff with the cheese sauce but none of them were beans 03:04:43 did you spill them 03:05:01 i think i spilled one of the broccolis accidentally 03:07:09 was it this one: http://upload.wikimedia.org/wikipedia/commons/4/4f/Fractal_Broccoli.jpg 03:07:33 no just a normal broccoli 03:08:26 apparently that's actually a cauliflower? 03:08:35 SORRY 03:08:42 i had cauliflower too but not that cauliflower. and i didn't spill it. 03:08:42 fractal cauliflower 03:08:52 if it's called cauliflower then why does the url say broccoli 03:08:55 checkmate monqyists 03:21:04 -!- WeThePeople has quit (Quit: Leaving). 03:28:28 -!- zzo38 has quit (Read error: Connection reset by peer). 03:29:10 -!- Arc_Koen has quit (Quit: Arc_Koen). 03:29:31 -!- WeThePeople has joined. 03:29:51 -!- zzo38 has joined. 03:30:08 (My computer was rebooting) 03:30:24 zzo38: have you ever met victoria 03:36:06 Not really 03:38:57 -!- WeThePeople has quit (Quit: Leaving). 03:41:59 shachaf: http://grsecurity.net/~spender/msr32.c __asm volatile(".intel_syntax noprefix\n" ...) 03:44:03 I imagine switching back and forth a lot could be pretty annoying. 03:44:49 not as annoying as AT&T syntax, apparenty 03:44:55 AT&T syntax *is* pretty bad 03:45:16 i'm surprised he doesn't define a macro to switch back and forth... I guess then you would need a \ on each line 03:46:20 Ugh, AT&T syntax. 03:46:40 kmc: I mean mentally switching back and forth. 03:46:56 * shachaf is much more used to AT&T syntax than Intel syntax. 03:46:58 -!- WeThePeople has joined. 03:47:09 (Intel syntax is also not that great. :-( ) 03:47:29 Do you prefer the DOS DEBUG assembler syntax? 03:47:49 i imagine that if you're reading the Intel manuals all the time, you might want to stick to Intel syntax 03:47:56 but if you're reading objdump output all the time, you might stick to AT&T :( 03:49:30 objdump -M intel 03:49:36 ah right 03:49:48 shachaf: Intel syntax sucks less. 03:49:57 Yep. 03:50:02 Both suffer from a fundamental problem, though... 03:50:04 x86 sucks. 03:50:04 :) 03:50:21 x86 is underrated, y'all are just hipsters 03:50:55 x86, as well as many modern instruction sets, are full of dumb thing. 03:51:18 x86 is the anti-modern instruction set. 03:51:34 i agree that x86 is full of dumb things but most of them are not relevant if you are writing userland code on a modern OS 03:51:43 Yes, it is very old but then made updates to change to make with modern things, and that is much worse. 03:51:47 and even to large degree, if you are reading compiler output for userland code in a modern OS 03:53:01 I happen to like the ARM2 instruction set, although modern ARM instruction sets are becoming extremely complicated, and there are even at least three instruction sets, and so on. 03:53:16 yeah ARM is nice 03:53:21 i happen to like monoids 03:53:23 it has its own weird corners though 03:53:29 even setting aside Thumb 03:53:31 want to wrestle on the floor about it 03:53:35 :( 03:53:42 is that how real hackers settle disputes 03:53:53 maybe you can advise Sgeo about the "Are you a Hacker?" question 03:54:32 Adavise 03:54:35 kmc: I just mean the ARM2 instruction set, not all the junk they added afterward. 03:55:39 The stuff they added afterward also happens to be patented, and I don't like patent, however, perhaps in this case something good came from it which is that the Amber core only implemented the ARM2 and therefore did not implement all of the complicated junk! So at least there is one advantage to having such a patent, even though patent is bad in general. 03:56:53 can you get Apple to patent the osx ui 03:57:00 so ubuntu stops copying it and becoming bad 03:58:23 I think it is too late now; simply work on to make a separate UI for Ubuntu if you want, that can be improved if you still want the other stuff of Ubuntu specifically rather than other Linux distributions. 03:58:58 But, yes, it might have helped I guess. 03:59:17 I don't even use Ubuntu now. 03:59:28 Patents might work if only extremely terrible and complicated things are patented, for this reason. 03:59:46 shachaf: Then use a different Linux distribution, or a different operating system entirely, or a different computer. 04:00:05 I switched to a different computer but Ubuntu was still bad. :-( 04:00:25 No, I mean a different computer which does not run Ubuntu. 04:01:01 monqy: so "''covariant functor''"''"" is just a generalization of ˙˙¨monotonic˙¨ right? 04:02:51 -!- WeThePeople has quit (Quit: Leaving). 04:04:51 `list 04:04:52 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 04:05:26 Did Fiora leave? 04:06:21 shachaf: well if you think of functors between poset categories 04:07:02 monqy: right 04:07:11 monqy: just like "galois connections" 04:07:12 oh wait 04:07:20 you don't know about those i forgot :'( 04:07:31 :-) 04:07:46 ÷) 04:08:20 monqy: what about a "monotonic predicate" 04:08:27 what category is that 04:08:43 (plz make it "not boring" i can only figure out boring versions) 04:10:22 Can a ring be made from a semiring in some way? 04:11:13 drop 4 04:11:23 shachaf: monotonic predicate as in a functor from a poset category to that other poset category where the objects are propositions and arrows are entailment? 04:11:55 is that what you mean / is that "boring" / what's "not boring" 04:13:18 yes / maybe / i don't know 04:13:32 wait is it actually what i mean 04:13:38 maybe your version is the "not boring version" 04:21:04 -!- WeThePeople has joined. 04:23:44 -!- WeThePeople has quit (Read error: Connection reset by peer). 04:31:24 -!- augur has joined. 04:48:30 `? monoids 04:48:34 Monoids are the easy version of categories. 04:48:39 `? monoid 04:48:42 Monoids are just categories with a single object. 04:53:23 elliott: Made a Shove spec 04:54:57 monqy: when people talk about covariance in subtyping what functor are they talking about 05:03:29 hi im back 05:04:33 shachaf: well you have your poset category of types right? and your * -> * 'types' are functors on it right? 05:04:45 [is it obvious yet] 05:05:54 monqy: what about when you talk about the "liskov substitution thing" 05:05:59 is that related 05:06:08 what's the second category in that case 05:07:08 (that was the thing i meant actually?? but maybe it's not related at all) 05:08:42 what specifically do you mean by the substitution principle since i dont talk about it 05:08:50 i don t know 05:08:53 ok 05:08:58 he didn't say principle monqy 05:09:17 liskov substitution thing aka liskov substitution principle 05:09:26 Let q(x) be a property provable about objects x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T. 05:10:15 hows that!!@ 05:10:45 well, so long as you're on the wikipedia article, read the first sentence of the second paragraph in the Principle section 05:11:09 ive only studied type-theoretic subtyping, not behavioral subtyping 05:11:50 ok but i'm asking about both....... 05:12:13 ???????????? 05:12:21 what's your question 05:12:24 i'm just trying to understand lenses 05:12:34 which seem to me obviously related to "all this" 05:12:37 05:09:26 Let q(x) be a property provable about objects x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T. 05:12:42 let q(x) = x is of type T 05:12:45 ÷) 05:13:45 elliott: that's exactly my point 05:13:49 we have to restrict q 05:14:01 the restriction???? Unlensy q => 05:14:12 elliott: (also stop stealing my smileys??) 05:15:35 ÷( 05:15:47 well it'd be easier for me to answer your question if you knew what you're asking / asked it in a manner that makes sense or otherwise is answerable 05:16:49 monqy: well doesn't this look related to lenses 05:17:09 SimpleUnlensyThing s a = foralll p. Blah p => p s -> p a 05:17:19 foralll 05:17:45 obviously "any property" doesn't work for the lsp thing 05:17:52 you need to restrict the properties 05:18:00 but what kinds of properties do you restrict them to? 05:19:14 every property that satisfies: (a `R` b) -> (P(a) `R'` P(b)), probably?? or something 05:19:34 ok 05:19:34 and also any property that satisfies P(a) `R'` P((a,b))?? 05:19:34 i dont think thats true 05:19:37 i don't know 05:19:41 i'm making things up a bit 05:19:44 can u prove it 05:20:04 prove what 05:20:17 idk whatever you're doing 05:20:32 not before i figure out "what it is i'm actually doing.." 05:20:40 oops 05:21:05 uh oh 05:21:14 monqy: anyway do you see "what im getting" at 05:22:47 Man, Finnish has such excellent words. 05:22:49 "kansalaisaloitetta" 05:23:19 -!- Frooxius has quit (Ping timeout: 260 seconds). 05:24:15 shachaf: i guess so? 05:24:27 i have no idea what you want p to satisfy though 05:24:28 monqy: well im glad one of us does 05:25:49 how about have P satisfy "if a is a subtype of b then p(b) -> p(a)" 05:25:50 hope this a helps 05:26:57 the joke is that elliott said "hope this a helps" but wasn't actually a helpful 05:27:04 yes 05:27:18 tswett: what does it mean 05:27:43 shachaf: you should ask edwardk about this. he'd say it's completely obvious and he knew it all along 05:28:11 elliott: edwardk told me to ask in ##logic ÷( 05:28:45 kmc: according to Google Translate, it means "citizens' initiative". 05:30:31 It also lacks some good words, like "talloikatsa". 05:33:11 shachaf: did you ask in ##logic 05:33:40 monqy: no 05:33:45 woops 05:34:11 monqy: have you ever seen ##logic 05:34:20 i think edwardk was just trying to "get rid of me" 05:34:30 I've never seen ##logic 05:34:31 should I ? 05:34:38 shachaf: have you ever seen ##logic 05:34:57 ,yes 05:35:46 does that mean I should or that you have......or both 05:36:40 it means i have 05:37:00 is it good 05:37:13 ask copumpkin 05:58:23 In the year 2000, there were 455 people in the United States with the last name Evilsizer. 06:04:10 monqy: wow ##c is awful 06:04:17 i've never been there 06:04:20 is it any good 06:04:31 yes 06:04:32 wait no 06:04:39 no, it's awful 06:06:20 I can't get paid for thinking about and designing programming languages, can I? 06:06:29 If I went to get higher education in CS or something 06:06:57 ask ais523 06:07:51 have you ever thought about and designed programming languages or just obsessed over them 06:07:55 -!- david_werecat has quit (Ping timeout: 256 seconds). 06:08:04 * shachaf hasn't :'( 06:28:41 monqy: It makes me look like someone who doesn't even know what "pedantic" means. 06:30:21 Hum. I got an email with a job descirption, but it wasn't sent to my more "professional looking" email address 06:30:48 shachaf: it's interesting the different security properties of block cipher modes 06:30:58 like, IV reuse is bad for CBC, but it's a lot worse for CTR 06:31:02 Sgeo: what's the difference 06:32:25 kmc: How do you do disk encryption with CTR? 06:32:25 The difference is I don't know how they got my personal email 06:32:38 maybe you gave it to them 06:32:49 alt. they did a "background search" on you 06:32:50 Although I did sign up on at least one site with it, but I don't remember which one 06:33:01 kmc: With CBC one thing people do is compute an IV per disk sector and just reuse it, or something along those lines. 06:33:15 And I do want to confirm that this job posting exists somewhere on the Internet other than as an email 06:33:29 ok 06:35:16 shachaf: you mean like ESSIV? 06:35:38 Yes. 06:35:51 But that's pretty awful with CTR. 06:36:00 right 06:36:14 (And with any stream cipher in that style.) 06:36:38 (CTR is a bit silly because all it needs is a hash function, not a block cipher.) 06:36:55 (But this is a case where it's not obvious how to get away with just a hash function?) 06:41:51 you're saying it's not necessarily secure to make a stream cipher from a cryptographic hash? 06:42:34 "The paleontological record shows the expected small step by step changes that we expect from Darwin's evolutionary theory of the survival of the fittest. In addition, however, the record shows large changes, jumps or gaps in the record that Darwin cannot explain. This has been called spontaneous evolution. Aren't these phenomena proof that the creationists know of what they speak? That consciousness (i.e. God, if you prefer that word) had a role h 06:42:42 I think there are many possibilities and that is not the only one. 06:43:29 Conscious evolution, theistic evolution, are some, but there are others, such as, perhaps the records have not been found yet, perhaps they have been destroyed, etc. There may be more possibilities, in addition. 06:45:13 i guess one difference is that in the stream cipher, you care if even one bit of the keystream is predictable 06:45:41 whereas for hashing you generally care about full collisions 06:46:02 No, I'm saying it's not obvious how to do disk encryption with a hash, even if that hash is suitable for CTR. 06:46:06 *nod* 06:46:29 Yes in a stream cipher is insecure if one but if the keystream is predictable. However you might be able to mix it up a bit somehow? 06:47:11 sha1 etc. aren't designed for CTR-style use, so I wouldn't use them for that. 06:47:17 right 06:47:19 salsa20 is, for example. 06:48:19 *nod* 06:51:04 monqy: do you know how "free structures work" 06:51:21 what do you mean by free structure 06:51:27 like in general or 06:51:38 like in general 06:51:45 left adjoint to a forgetful functor "and all that" 06:52:42 i'm not familiar with them at that level of generality but say "just one level more specific than that" 06:53:10 what level are you familiar with them 06:53:28 like can you explain how you would come up with "free monads and cofree comonads and stuff" 06:54:14 There is the 5-bit encoding used in the Bacon cipher, but I-J is same and U-V is same, but then "Note: A second version of Bacon's cipher uses a unique code for each letter. In other words, I and J each has its own pattern."; however, maybe you could use Baudot coding with Bacon's cipher, instead. 06:59:30 shachaf: i'm honestly not familiar enough with category-theoretical monads to explain free monads. =( 06:59:49 =( 06:59:54 can you explain a different free things 06:59:58 like free monoids 07:02:07 ok, you know the definition of free objects in terms of their universal property right? that's how i know them. 07:02:42 no 07:03:16 i don't know what a universal property is :'( 07:03:23 maybe i should read that first.. 07:04:00 ok do you know about "comma category" and "initial objects" 07:04:16 free monoids aka "strings on an alphabet" 07:04:28 or lists 07:04:37 yes they're easy 07:05:08 yes they are 07:05:32 i don't know about "comma category" and i sort of know about "initial object??" 07:05:39 initial object isn't very complicated is it 07:05:44 initial object is easy 07:05:46 comma category is easy too 07:05:48 for a variety like monoids, a free object is one where everything is an expression made out of the generators, and _no_ equations are true unless they hold for the generators replaced with arbitrary variables 07:05:59 (in the variety) 07:07:39 shachaf: should i explain "comma category" 07:07:57 monqy: sure 07:08:14 that is, if Exp1(x,y,z) = Exp2(x,y,z) isn't true for _all_ monoids and monoid elements x,y,z; then it is not true when x,y,z are the generators of a free monoid. 07:08:42 s/monoid/any variety of algebras you like/, e.g. groups or rings 07:08:52 actually i guess theres a specific version of "comma category" thats useful here 07:09:00 but i gotta find out what it's called 07:09:08 semicolon category 07:09:53 -!- oerjan has quit (Quit: Maybe Sleep). 07:10:33 thoerjan 07:10:38 areyoureadingthisoerjan 07:17:57 -!- FreeFull has quit (Quit: 364717769364). 07:18:15 monqy: are you still explaining comma categories 07:18:20 or should i read about them instead 07:18:23 no but im explaining something 07:18:25 if so what's the name of that other thing 07:18:59 ok 07:19:21 monqy: is elliott making fun of me in /msg right now :'( 07:20:11 i was making fun of people in ##crawl 07:20:24 i like how that's not a denial 07:21:06 anyway uh specific category we're talking about for free objects is you pick some set let's call it S of "generators" and you say an object X in your category C is "free" if you have some injection i from S to X such that if you've got any other object Y in your category with some j : S -> Y then there's a unique C-morphism f : X -> Y such that j = f . i 07:21:19 that's "really getting specific" about it 07:22:27 if you want to use general terms in the way you state things you state it as the initial object in a certain category 07:24:51 specifically it's the category where the objects are S -> thingy where thingy's a C-object, and the morphisms are C-morphisms such that the diagram commutes 07:25:09 and then you can get more general than that if you want to but that's about as generally as i've learned it/am really comfortable with 07:25:24 -!- azaq23 has joined. 07:25:35 -!- azaq23 has quit (Max SendQ exceeded). 07:25:41 and stating it in terms of initial objects gives you nice stuff like uniqueness "for free" 07:26:00 -!- azaq23 has joined. 07:26:05 anyway uh 07:26:08 -!- azaq23 has quit (Max SendQ exceeded). 07:26:10 does that answer your question shachaf 07:26:31 -!- azaq23 has joined. 07:27:17 the depth of how i know free objects are "constructed" is you eyeball it, use some intuition about "ok what's the most general 'free-est' thing that still has this structure" and then prove it satisfies that universal property 07:27:36 and if you think about what morphisms "do" at an "intuitive level" then it makes sense 07:27:55 like exactly what sort of structure they preserve and how they preserve it and so on 07:29:15 not sure if it answers my question ill have to think about it 07:29:23 (what was your question) 07:29:41 i think part of my question involved "adjunctions and stuff" 07:30:01 but you probably won't talk about adjunctions because of the "galois connection" 07:30:05 (thats a kind of pun btw) 07:30:48 anyway i was trying to understand the whole "free functor is left adjoint to a forgetful functor thing??" 07:31:28 but these things are good and related to that 07:33:30 well if you take a step out of my comfort zone you end up throwing a faithful functor over the stuff in C, and you call it the "free functor" if you look at its properties it turns out to be left ajoint to the forgetful functor??? 07:33:40 - wikipedia 07:33:44 but i can't really explain that stuff 07:36:11 maybe i'll be able to explain it once i read ``categories for the working mathematician''!! 07:36:25 i heard you'll "know everything" once you read that 07:36:39 that sounds dangerous 07:45:06 -!- DHeadshot has quit (Ping timeout: 264 seconds). 08:00:49 -!- epicmonkey has joined. 08:08:30 I should probably keep track of every company I send a resume to 08:08:34 Rather than sending and forgetting 08:08:38 Which is what I have been doing 08:10:15 good idea 08:14:02 Well, one of the sites I use does keep track for me :) 08:14:13 I think the other two sites do too, but haven't really checked 08:17:00 -!- oklopol has joined. 08:17:21 i got the impression that you were not particularly interested, but in any case the answer was "in treatment", apparently 08:17:35 (the theme song i asked about) 08:23:33 `echo "echo rsum" > bin/resume 08:23:36 ​"echo rsum" > bin/resume 08:23:40 ? 08:23:41 Oh 08:23:46 `run echo "echo rsum" > bin/resume 08:23:49 No output. 08:23:58 `chmod a+x bin/resume 08:23:59 chmod: missing operand after `a+x bin/resume' \ Try `chmod --help' for more information. 08:24:06 `run chmod a+x bin/resume 08:24:08 No output. 08:24:10 `resume 08:24:11 rsum 08:24:16 Score one for laziness 08:44:24 -!- heroux has quit (Ping timeout: 252 seconds). 08:45:47 -!- oklofok has joined. 08:48:42 help if I say "tomorrow would be good" (which I did, which was dumb), are they likely to call me tomorrow and state a time? 08:49:18 That is, am I going to be expected to find out when the interview is on the day of the interview? 08:49:23 I don't think I can handle that 08:53:00 you mean call them? 08:53:39 I mean have them call me and tell me that the interview is the same day that they're calling me to tell me what time it will be 08:53:46 I haven't even confirmed a date 08:54:01 So I'm not at all ready to go tomorrow, not even sure how awake I'll be 08:54:13 but you said tomorrow would be good 08:54:38 Yes, I shouldn't have said that. But I was anticipating that they'd call back if they did in fact want to schedule it for tomorrow 08:54:55 As in, I though they'd call back before tomorrow 08:55:26 monqy: should i prefer yoneda or coyoneda 08:57:29 I think it depend what you are making. 08:58:08 shachaf: idk 08:58:41 monqy: they both "sort of do the same thing when you" give them a functor right 08:59:09 i dont know much about the yoneda lemma "wooooops" 08:59:22 monqy: idont mean the lemma i just mean the haskell types. 09:03:54 Well, I'll set some alarms, try to be awake in the morning 09:03:56 Just in case 09:06:02 shachaf: idk i havent studied them much at all?? my only real "experience" with them is that one time you asked me about how yoneda looks like partially applied >>= and coyoneda like =>>, or something like that 09:06:56 monqy: well theyre' "pretty simple"?? 09:07:01 yes 09:07:10 so which one should i use 09:07:22 monqy: btw youre thinking of codensity and density 09:07:25 oh 09:07:26 right 09:07:29 those 09:07:38 i get things i dont know anything about confused sometimes 09:07:39 yoneda is "like a simpler version of those" 09:08:09 uhh just go with yoneda and if you feel like you should have used coyoneda go with that? 09:08:48 for the reason that existentials are sorta ehh 09:09:05 "silly taste things" 09:09:06 but coyoneda seems "more obvious to me" 09:09:09 "i know nothing about what i'm saying" 09:09:12 ok then use coyoneda 09:09:13 its not cpsed 09:09:16 ok then use coyoneda 09:09:17 but maybe yoneda is better?? 09:09:20 ok then use yoneda 09:09:27 alt. ok then ask someone who knows 09:09:33 also coyoneda can be meaningful for things that arne't functors 09:09:40 but im not sure what yoneda means for those?? 09:09:45 ok 09:10:01 monqy: i thouhtgt you knew everything 09:10:10 don't shatter my illusion 09:10:10 have you bothered edwardk about this yet he'd probably know 10000% more than me 09:10:13 just making things up 09:10:18 s/ing/e/ 09:12:29 monqy: thats' a lot of % 09:12:35 how do I emulate morphisms in Haskell? I wanna implement category theory programming in Haskell :D so I guess I should learn what coyoneda is first 09:13:06 yes 09:13:21 ion: do you know what coyoneda is 09:13:23 "its simple" 09:14:08 I have looked up its definition but i’m not sure of its implications and use. 09:14:59 Let's say you have a big tree which is a function. 09:15:11 So you know that fmap (+1) . fmap (*2) = fmap ((+1).(*2)) 09:15:49 But you might not want to generate all an intermediate tree there. 09:16:06 "CoYoneda Tree" keeps a tree, and a function to be mapped over it. 09:16:14 Wait, i didn’t get the “tree which is a function” part. 09:16:27 Er. 09:16:28 you have a Tree which is a functor 09:16:31 s/function/functor/ 09:16:32 ah 09:16:44 "my fingers have been cursed by not being monqy" 09:16:57 or beaqy 09:17:23 the Divine Fingers of Beaqy 09:17:52 So CoYoneda Tree a = (Tree x, x -> a), for some x. 09:18:00 aye 09:18:06 When you fmap over it, all you're doing is composing onto the function. 09:18:18 Then when you have one big composed function, you can apply it all at once. 09:18:19 right 09:18:42 That's pretty much it. 09:18:45 alright 09:19:04 Yoneda is the same thing except the opposite. 09:19:08 :0 09:20:16 ion: And Density is the same thing except with a comonad! 09:21:16 Yoneda Tree a = (a -> b) -> Tree b… so like a partially applied fmap? 09:21:35 Right. 09:21:40 (With a forall b. there.) 09:21:43 yeah 09:21:59 So you can turn Tree a into Yoneda Tree a by applying fmap. 09:22:05 And you can turn it back by applying it to id. 09:22:20 Codensity is the same thing as Yoneda except with a monad! 09:22:43 and coyoneda is the same thing except the opposite 09:23:20 does "co" mean opposite in japanese 09:23:45 monqy: i saw you twitter account how come you don't post no more? 09:23:56 09:24:02 fforget you saw that 09:24:11 it's 09:24:14 but i'm curious about what happened to banana time 09:25:23 i should have deleted it ages ago i don't use it and it's probably embarrassing 09:25:40 no its good 09:25:44 "rly good" 09:25:51 i would follow you 09:26:00 except i don't follow peopoel 09:26:41 Ok, for my reference: 09:26:43 CoYoneda f a = forall b. (f b, b -> a) 09:26:46 Density k a = forall b. (k b, k b -> a) 09:26:48 Yoneda f a = forall b. (a -> b) -> f b 09:26:50 Codensity m a = forall b. (a -> m b) -> m b 09:26:54 Whoops, got some extra whitespace in there. 09:27:14 Terminals are so intelligent. 09:27:16 also you mixed up forall and exists.................... 09:27:27 but other than that, sure 09:27:34 Ah, wasn’t paying attention to that part. 09:27:43 ion: You might as well specify Ran and Kan instead. 09:27:52 All of these are a special case of those. 09:27:58 ok 09:28:04 -!- azaq23 has quit (Quit: Leaving.). 09:28:39 Er. 09:28:41 Ran and Lan 09:31:20 Is this right? http://heh.fi/tmp/kan 09:31:41 Looks right. 09:32:05 Are there other noteworthy aliases to Lan and Ran? 09:32:24 In Categories for the Working Mathematician Saunders Mac Lane titled a section "All Concepts Are Kan Extensions", and went on to write that 09:32:27 The notion of Kan extensions subsumes all the other fundamental concepts of category theory. 09:32:34 So apparently yes? 09:32:38 heh, ok 09:32:45 monqy is going to be able to tell you "a lot about them apparently" 09:40:14 -!- DHeadshot has joined. 10:07:55 -!- Phantom_Hoover has joined. 10:08:35 My dad does want me to continue with education, but I want some financial freedome 10:08:37 freedom 10:08:52 I don't like being tied to whatever money my dad gives me 10:09:05 humens must fight for financial freedome! 10:10:09 fight your dad 10:14:19 Is it really such a terrible idea to try to get a Masters while having a full-time job? 10:15:11 can't you get money doing grad student stuff 10:15:26 ? 10:15:49 research assistant money (grant money), teaching assitant money 10:16:21 hmm 10:16:38 monqy: should i go be a student 10:16:40 gee i'm technically an undergrad and i get grant money 10:16:46 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds). 10:16:49 shachaf: idk what's your education 10:16:57 none :'( 10:17:12 it's a tough question 10:17:52 -!- Phantom_Hoover has joined. 10:18:16 How difficult is it to become a TA? 10:18:34 idk i'm not a ta but some of the people i work with are ta,s 10:18:52 total annihilation? 10:18:53 probably you have to take a ta seminar, know some stuff about the field, and preferably know the professor 10:19:41 shachaf: yes 10:19:57 I only really know Farmingdale professors, although I guess some could be professors elsewhere too 10:20:14 well you get to know the professors once you're in grad school don't you 10:20:16 monqy: what makes you 'technically" an undergrad 10:20:23 shachaf: being an undergrad 10:20:32 oh 10:20:44 do you recommend it 10:20:47 but for "various intents and purposes" i'm a grad student 10:21:01 oh no 10:21:04 which intents 10:21:39 i mostly take grad courses, work in a research lab, &c 10:21:46 what kind of research 10:22:24 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds). 10:22:52 -!- Phantom_Hoover has joined. 10:23:07 it's "the" programming languages lab on campus but its projects i'm familiar with are mostly geared towards abstract interpretation? 10:23:17 Also it seems too late for me to go into grad school at least unless I take a lot of time off of school because I missed a variety of deadlines 10:24:10 im pretty sad about how my school tends not to offer interesting things but i guess it's the same for every school & i can usually learn them myself anyway 10:24:24 which school 10:24:44 is it one of those southern california schools 10:24:55 please don't stalk me that's not nice 10:25:13 im "just curious" 10:26:17 -!- Phantom__Hoover has joined. 10:26:28 shachaf: anyway idk if i'd "recommend" an undergraduate education...ime you'd learn bits and pieces about stuff but unless you go out of your way it's pretty lacking 10:26:45 would you "recommend" an overgraduate education 10:26:50 hm 10:26:57 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 10:27:40 perhaps? i'd also recommend some things about undergraduate education but as a whole idk if it's worth it 10:28:33 which things 10:30:00 the bulk of what i actually learn ends up being split between math stuff and research stuff. there's also cs courses but they mostly end up being more "general education" imo than really things that help me, and not in such a helpful degree as the math? idk 10:30:45 research stuff being split between experience in a lab environment and all the stuff you end up learning by way of teaching yourself or interactions with other lab members &c 10:32:17 hm 10:32:49 not that the general education is bad. it occasionally provides some insights etc which is nice and all 10:33:38 and certainly if you find an interesting or helpful class that's excellent 10:34:56 but much of it ends up being neither interesting or helpful, just taking classes you don't learn anything from because you have to take them to get your degree 10:35:48 are degrees good to get 10:36:52 idk how much a bachelors degree is worth 10:37:34 probably it'd help you get some programming jobs or whatever? i'm more interested in jobs that i imagine would prefer a phd 10:38:04 like what 10:39:10 i don't really know. something with theorywork, preferably doing some "new and neat" researchy stuff somewhere within programming languages 10:40:10 Put up a "will do new and neat stuff with programming languages for food" sign up. 10:40:16 Double-up. 10:44:06 how about inventing a programming language even better than ada 10:44:14 maybe that's too ambitious 10:44:17 Sgeo would know 10:45:22 sgeo must be an ada guru by now right 10:46:17 i hope so 10:46:54 shachaf why are you so weird these days 10:47:00 Phantom__Hoover: ? 10:47:14 monoids, monqy, ada.... 10:47:18 monqy: in a language with subtyping can you have a haskell-style functor which isn't covariant? 10:47:32 covariant in the subtyping sense 10:47:53 idk 10:48:59 what if you have something like a gadt thing 10:49:15 well, pathological case is your subtyping relation is just type equality, so any haskell-style functor would be invariant because of that pathology 10:49:38 data Sub a b where Sub :: (a <: b) => Sub a b 10:49:52 oops maybe i meant the other way around? 10:50:24 i think that's right? idk what you're trying to do with it but 10:50:51 well is Sub a b <: Sub a c if b <: c or something 10:50:53 -!- c00kiemon5ter has joined. 10:51:32 idk 10:51:49 for one, maybe you don't have subtyping on gadts 10:52:04 im not completely sure what it would mean 10:53:18 as in how to define subtyping on gadts? 10:53:35 for instance 11:02:07 ? 11:02:19 yes 11:02:37 ??? 11:02:57 oh no 11:03:26 monqy: if all you do is gradstu dent things why are you "technically" not one 11:04:47 a variety of reasons 11:04:58 wow thats alot of reasons 11:06:25 ye 11:19:33 -!- Phantom__Hoover has quit (Read error: Operation timed out). 11:20:15 -!- Phantom_Hoover has joined. 11:22:10 -!- Phantom__Hoover has joined. 11:22:43 -!- Phantom___Hoover has joined. 11:23:24 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 11:24:30 -!- Phantom___Hoover has quit (Read error: Operation timed out). 11:25:14 -!- Phantom___Hoover has joined. 11:26:00 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds). 11:27:05 -!- Phantom__Hoover has quit (Read error: Connection reset by peer). 11:28:30 -!- Phantom__Hoover has joined. 11:30:17 -!- Phantom__Hoover has quit (Read error: Operation timed out). 11:30:36 -!- Phantom___Hoover has quit (Ping timeout: 276 seconds). 11:37:31 -!- impomatic has joined. 11:42:11 -!- Phantom__Hoover has joined. 11:46:28 -!- Phantom__Hoover has quit (Ping timeout: 248 seconds). 11:48:26 -!- Phantom__Hoover has joined. 11:51:32 "Strong knowledge of MS Word, Excel, Access, PowerPoint Outlook and Internet." 11:52:08 sounds like a job ? 11:52:32 That's what someone has on their LinkedIn profile 11:53:03 I am beginning to loathe the corporate world 11:57:31 Just remembered a place I heard of long ago 11:57:36 I really like this scale: 11:57:38 "None: No knowledge, awareness, or experience. 11:57:38 Beginner: Have done some reading or tutorials. No use in production. 11:57:38 Intermediate: Some production experience. Need to rely on outside references. 11:57:38 Expert: Significant experience, knowledge, and fluency." 11:58:47 Hmm, according to that scale, I would have Intermediate PHP experience. I don't know how to feel about that. 11:59:08 there should be a channel where you get Sgeo commentary on things 11:59:20 you can just add any topic to the queue and wait 11:59:21 is the joke that there already is 12:01:06 the channel where Sgeo comments on things and monqy teaches category theory. 12:01:20 monqy: oh you teach category theory now? 12:01:42 i was just answering shachaf's question...i dont actually know category theory 12:02:11 // guess I really should get to commenting on stuff. Here's a good comment. 12:02:19 monqy: the joke is that happens every day 12:02:27 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds). 12:02:32 ☹ 12:02:34 oklofok: what happens every day 12:02:49 // *puts a comment on shachaf* 12:03:32 shachaf: that monqy is just answering shachaf's question...he doesnt actually know category theory 12:03:56 oklofok: imo monqy knows almost everything 12:04:00 yes 12:04:16 we all know he's just playing hard to get 12:04:28 or something 12:06:51 -!- Phantom__Hoover has joined. 12:07:47 Sgeo: how's ada 12:08:07 Sgeo: have you learned dylan yet 12:08:13 I think she's been dead for a while 12:08:39 dylan is still alive 12:08:45 And I liked Dylan last I looked at it, but it's too impossible to actually get running for my taste 12:08:46 also the people in #dylan keep asking for help 12:08:55 Sure they are 12:08:56 they want You for dylan army 12:09:02 ? 12:09:24 One of the people who works on the compiler kept bugging me to join the channel and help them. 12:09:30 I did one of those things... 12:09:41 Seriously, there's a lot of work and they need people. 12:09:57 They have a fancy compiler, they have all the macros you could ever want. 12:13:54 I know about the Dylan language, and if it were easy to get Dylan to work on my system, I would love it 12:14:12 You should help with that! 12:18:01 Bluh, Dylan uses undelimited continuations? 12:18:34 Why don't you talk about that in #dylan? 12:26:52 Sgeo: See? 12:27:00 -!- epicmonkey has quit (Ping timeout: 248 seconds). 12:27:19 did sgeo talk about it in dylan 12:27:35 yes 12:28:17 congratulations 12:28:35 monqy: maybe sgeo will invent a dylan ada hybrid 12:28:45 what plt contribution have you made to the world 12:29:00 good question 12:29:19 not inventing a dylan ada hybrid 12:29:25 also, do i have to make these lines line up now? 12:29:44 well didn't y'all just spoil a good thing. hmph. 12:30:47 that's a silly typing constraint 12:33:26 -!- epicmonkey has joined. 12:35:13 What? 12:35:16 Ohno. 12:35:22 I am, 12:35:25 scrwd 12:35:46 poertry 12:36:09 -!- zzo38 has quit (Remote host closed the connection). 12:36:13 This is why constraints are bad. 12:36:19 Suck. 12:36:21 :''-( 12:36:42 See what you have done, shachaf. 12:37:52 Now I 12:37:53 can't 12:37:55 evoke 12:37:57 fungo 12:38:02 Dang. 12:38:17 fungot, what do you make of this 12:38:17 Jafet: they say that you should certainly learn about quantum mechanics. the waves to the _dark_ heavens. he committed many murders. as the shark rose, driven by the orb itself. when carried, it can cause the traveller to feel great, you make so bold to find the exit. ( salamanders, by terry pratchett) 12:38:47 fungot: Just tell fizzie a jokes about functors. 12:38:47 shachaf: wolf, *wolf, *wolf cub: the consecrated ritual knife of a wand of undead turning might bring the whole course of known life from the third was taller than the others: his hair was her chief glory, but unknown animal of the giant briareus thou shalt say to the temple and changed to a succubus. 12:39:07 Haven't read that book, but okay 12:39:17 -!- monqy has quit (Quit: hello). 12:40:42 @tell monqy thanks for your help btw monqy hello 12:40:42 Consider it noted. 12:41:23 Jafet 12:41:26 It do 12:41:27 sound 12:41:29 vgood 12:41:30 book. 12:42:37 Most Pratchett books are alright 12:49:24 wow 12:49:45 seeing fizzie type weirdly is unsettling 12:52:50 shachaf: "what plt contribution have you made to the world" did not line up with the previous line 12:53:09 hi 12:53:10 erm 12:53:23 apparently my font is not monospace when there's emphasis. 12:53:38 You broke the spell anyway. 12:53:48 ldsjfasldjf 12:54:01 Anyone can believe in the magic. 12:54:19 Hmm, this is kind of convenient. 12:54:28 You can scan through the screen and tell who wrote what line. 12:58:17 My mouse is broken 12:58:23 Has been for some time 12:58:30 I try to scroll up, sometimes it scrolls down 12:59:12 No comparable problem while trying to scroll down 12:59:56 I don't think "sometimes it scrolls down" would be a problem when trying to scroll down. 13:00:29 I said "comparable", not "identical" 13:00:39 It does not try to scroll up when I try to scroll down. 13:07:26 -!- augur has quit (Remote host closed the connection). 13:32:06 -!- heroux has joined. 13:55:30 -!- carado has joined. 14:11:06 -!- boily has joined. 14:16:45 o.O 14:17:02 I... already applied for that job opening. Why am I being emailed to tell me that it exists? 14:17:59 -!- augur has joined. 14:19:16 I don't understand what I'm being asked to do with this information 14:30:26 fuck fuck fuck 14:30:27 http://www.ripoffreport.com/organized-crime/cybercoders/cybercoders-cyber-coders-inc-4f786.htm 14:31:59 interesting. 14:32:33 Although actually, that one place that wants that interview I think was from CyberCoders 14:32:34 So 14:45:28 Remind me to look at this later http://code.google.com/p/pants-lang/ 14:47:57 -!- david_werecat has joined. 14:49:24 took a very quick glance at https://code.google.com/p/pants-lang/source/browse/first-c%2B%2B-impl/src/assets/prelude.p 14:49:43 the syntax looks a little bit too crufty to my eyes. 14:59:00 -!- sebbu2 has joined. 15:00:20 -!- sebbu has quit (Ping timeout: 248 seconds). 15:21:24 Hmm. If I invert my food schedule such that the less work intensive meal comes later in the day when I am more tired, that may help with my sleep problems if I can just stay awake for 10 more hours 15:21:35 Although I am rather tired 15:39:15 -!- Arc_Koen has joined. 15:55:29 -!- Arc_Koen has quit (Quit: Arc_Koen). 16:12:41 Maybe I should try to get into Erlang 16:13:51 Maybe you should just build damn Sgeolang already 16:15:49 You know what I want? A special type of value that, whenever it's passed as an argument to something, manipulates the function call itself 16:16:01 Don't really have a fleshed out idea of how that would work though 16:16:43 delimited continuations might be the next best thing. Or might be far better than that. 16:21:16 -!- sirdancealot7 has quit (Ping timeout: 245 seconds). 16:35:19 -!- sirdancealot7 has joined. 17:01:14 -!- Taneb has joined. 17:03:30 Sgeo: that sounds like the reverse of a continuation 17:03:37 Sgeo: maybe "co-continuation" ? 17:11:02 Or just a ntinuation? 17:12:34 Well, with a delimited continuation, as long as you're in a reset, there's a function you can call that affects the function call you're in, along with the entire rest of the future 17:13:10 -!- atriq has joined. 17:13:17 -!- Taneb has quit (Ping timeout: 252 seconds). 17:15:31 -!- atriq has changed nick to Taneb. 17:20:39 P -> P -> Q -> P? 17:34:38 parens? 17:35:10 if you have the usual ones then yes 17:35:27 That feels almost useless 17:35:51 P -> (P -> (Q -> P))? 17:35:56 Yeah 17:36:15 this looks very familiar, is it one of the three usual axioms? 17:38:09 It's pierce's law backwards 17:38:55 and is pierce's law peirce's law backwards? 17:40:00 No, it's peirce's law as shared by someone who needs a couple of hours' sleep 17:40:07 and i doubt it's completely useless, you can get P -> Q -> P from it with modus ponens 17:40:20 * Sgeo mentally does a truth table 17:40:22 (which is one of lukasiewicz' axioms) 17:40:30 I feel bad having to surrender to truth tableism like this 17:41:13 "if P, then from P it follows that from Q, P follows" is true because if P, then P follows from anything. 17:42:33 i mean 17:42:42 i mean by what i said earlier i mean 17:42:49 say you have P 17:42:59 and you want to show Q -> P for some reason 17:43:33 then this is what lukasiewicz1 = P -> Q -> P gives you, as P, P -> Q -> P implies Q -> P 17:43:46 but by doing another modus ponens you can also do this with your thingie 17:44:53 then again from P -> Q -> P, you get (P -> Q -> P) -> P -> (P -> Q -> P) using luka1, and modus ponens says P -> Q -> P and (P -> Q -> P) -> P -> (P -> Q -> P) imply P -> (P -> Q -> P). 17:44:59 so up to modus ponens, yours is just luka1 17:45:34 in short, luka1 is really just "something that is true follows from anything" 17:45:41 and yours states this as well. 17:45:53 in an encrypted form 17:47:07 unless i made a mistake somewhere, it's years since i did any propositional logic 17:50:12 -!- c00kiemon5ter has quit (Ping timeout: 248 seconds). 17:52:04 -!- FreeFull has joined. 17:56:16 -!- AnotherTest has joined. 18:00:23 Hi 18:00:51 Hi 18:03:58 * Sgeo ponders on what Sgeolang would look like 18:04:37 Hmm, when I said in another channel that message passing implies single-dispatch, someone pointed me at Cecil. 18:04:40 I should look at it 18:07:07 "Cecil's object declarations do not "contain" their method, field, or even parent declarations. Instead, all these attributes of objects are declared externally, allowing clients to add methods, fields, and even parents of existing objects separately from their original definition. 18:07:07 " 18:07:13 uh... 18:07:21 -!- sebbu2 has quit (Ping timeout: 252 seconds). 18:09:43 -!- c00kiemon5ter has joined. 18:14:08 -!- sebbu has joined. 18:14:09 -!- sebbu has quit (Changing host). 18:14:09 -!- sebbu has joined. 18:17:40 apparently at Oracle, any email about anything interesting is sent To: lawyers, Cc: people you actually want to talk to 18:17:47 so that it's protected by attorney-client privilege 18:18:39 "The presence of multiple dispatching relieves some of the type system's burden, since multiple dispatching supports in a type-safe manner what would be considered unsafe covariant method redefinition in a single-dispatching language." 18:18:43 I have no idea what that means 18:19:00 kmc: nice 18:19:02 does that work? 18:19:54 elliott, I am broadening my chances of finding The One language by looking at dead languages, I think 18:20:19 okay 18:20:32 are you like gollum 18:21:13 I am like someone who needs sleep 18:21:47 elliott: apparently 18:23:08 the other side in a suit can call bullshit, but it would be a big deal for the court to order discovery of ostensibly privileged communications, and gives you a great avenue for an appeal 18:23:22 so yeah, hacks 18:23:59 Wait, if I say something to my lawyer and then say it to an acquaintance, for example, how is that priviledged? 18:24:21 -!- sirdancealot7 has quit (Ping timeout: 276 seconds). 18:24:26 i think it's treated more like if you had a three-way meeting with your lawyer and an acquaintance together 18:24:35 and the lawyer is also your acquaintance's lawyer 18:26:14 i think it's like, you have a meeting about how to crush Google, but you frame it as ostensibly you're all asking the lawyer for legal advice on consequences of crushing Google in the following ways 18:26:36 then if Google sues it is much harder for them to get a copy of that email 18:27:07 (which, even if you're doing nothing illegal, and the lawsuit is unrelated, of course they will want to see that email) 18:32:52 oracle's lawyers must hate checking their inboxes 18:37:23 -!- sirdancealot7 has joined. 18:44:36 -!- Nisstyre has quit (Ping timeout: 248 seconds). 18:55:26 -!- sirdancealot7 has quit (Ping timeout: 245 seconds). 18:59:46 -!- Nisstyre has joined. 19:02:52 -!- impomatic has left. 19:08:53 -!- sirdancealot7 has joined. 19:09:51 -!- DHeadshot has quit (Ping timeout: 276 seconds). 19:12:35 * boily is stuck listening to drab muzak... ♪ 19:12:42 I hate being put on hold. 19:13:22 -!- DHeadshot has joined. 19:16:13 sux 19:22:12 so, no problem on their end, need to buy a new SIM card for my cellphone. *grmbl* 19:23:15 that makes me angry. maybe I should learn Ada to relax. 19:32:39 -!- DH____ has joined. 19:32:43 -!- DHeadshot has quit (Read error: Connection reset by peer). 19:33:00 you should learn Sgeolang 19:33:21 -!- impomatic has joined. 19:35:22 I need to grok continuations first, then I'll sgeo. 19:37:32 sgentinuations 19:38:12 is that when you delegate your program's state to Sgeo? 19:38:32 "here, finish that number crunching, I'm tired"? 19:39:46 Sgeolang is the new @ 19:40:58 @tell elliott Sgeolang is the new @ 19:40:58 Consider it noted. 19:41:41 hi 19:41:41 elliott: You have 1 new message. '/msg lambdabot @messages' to read it. 19:42:19 elliott, are you going to take that 19:42:26 -!- DH____ has quit (Read error: Connection reset by peer). 19:42:33 kmc: you suck 19:42:34 Phantom__Hoover: hth 19:42:50 good job 19:47:39 elliott: k 19:53:51 -!- cuttlefish has joined. 20:02:24 cuttlefish: kings of camouflage 20:02:41 Help I can't program in C 20:05:07 * kmc can advise 20:07:18 ~echo kmc: with my mighty cuttlefish, I can hide usefulness beneath a deceptive layer of bugs! 20:07:18 kmc: with my mighty cuttlefish, I can hide usefulness beneath a deceptive layer of bugs! 20:07:46 ~help 20:07:46 --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi 20:07:51 ~help eval 20:07:51 --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi 20:07:56 ~eval 2+2 20:07:57 4 20:08:05 ~eval 2+"2" 20:08:05 Error (1): No instance for (GHC.Num.Num [GHC.Types.Char]) 20:08:05 arising from a use of `GHC.Num.+' 20:08:06 Possible fix: 20:08:06 add an instance declaration for (GHC.Num.Num [GHC.Types.Char]) 20:08:18 uh oh, kmc is writing haskell again 20:08:18 ~eval print "foo" 20:08:18 Error (1): No instance for (GHC.Show.Show (GHC.Types.IO ())) 20:08:18 arising from a use of `M1495348596825233665.show_M1495348596825233665' 20:08:18 Possible fix: 20:08:18 add an instance declaration for (GHC.Show.Show (GHC.Types.IO ())) 20:08:22 elliott: lololololol 20:08:26 elolololololiott 20:08:32 that's a good name 20:08:42 ~yi 20:08:42 Your divination: "Pervading" to "Shake" 20:08:45 ~yi 20:08:45 Your divination: "Brightness Hiding" to "Concording People" 20:09:02 ~ fix (1+) 20:09:02 --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi 20:09:05 ~eval fix (1+) 20:09:07 Error (1): 20:09:16 ~eval fix (1:) 20:09:17 [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 20:09:31 ~eval let x = 1 : y; y = 0 : x in x 20:09:32 [1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 20:09:59 ~eval fst $ fix (\(xs,ys) -> intersperse (0:xs,1:ys)) 20:10:00 Error (1): Couldn't match expected type `([a0], [a1])' 20:10:00 with actual type `[([a0], [a1])] -> [([a0], [a1])]' 20:10:13 ~eval uncurry intersperse $ fix (\(xs,ys) -> (0:xs,1:ys)) 20:10:13 Error (1): No instance for (GHC.Show.Show a0) 20:10:14 arising from a use of `M1417484012806218820.show_M1417484012806218820' 20:10:14 The type variable `a0' is ambiguous 20:10:14 Possible fix: add a type signature that fixes these type variable(s) 20:10:14 Note: there are several potential instances: 20:10:14 instance GHC.Show.Show GHC.Types.Double 20:10:15 -- Defined in `base:GHC.Float' 20:10:15 instance GHC.Show.Show GHC.Types.Float 20:10:16 -- Defined in `base:GHC.Float' 20:10:16 instance (GHC.Real.Integral a, GHC.Show.Show a) => 20:10:17 GHC.Show.Show (GHC.Real.Ratio a) 20:10:17 lol 20:10:17 -- Defined in `base:GHC.Real' 20:10:18 ...plus 42 othersNo instance for (GHC.Num.Num [a0]) arising from a use of `e_101' 20:10:18 Possible fix: add an instance declaration for (GHC.Num.Num [a0]) 20:10:32 ~eval typeOf () 20:10:33 () 20:10:35 ~eval uncurry intersperse $ fix (\ ~(xs,ys) -> (0:xs,1:ys)) :: [Int] 20:10:35 Error (1): Couldn't match type `[a0]' with `GHC.Types.Int' 20:10:35 Expected type: [GHC.Types.Int] 20:10:36 Actual type: [[a0]] 20:10:40 omg fuck you 20:10:41 :t intersperse 20:10:43 a -> [a] -> [a] 20:10:45 oh 20:10:47 ~eval cast (Just "foo") :: Maybe Int 20:10:47 Nothing 20:10:48 :t interleave 20:10:49 MonadLogic m => m a -> m a -> m a 20:10:52 ~eval uncurry interleave $ fix (\ ~(xs,ys) -> (0:xs,1:ys)) :: [Int] 20:10:53 Error (1): Not in scope: `interleave' 20:10:55 i bet you dont even have that 20:10:59 ugh go to hell stupid computer 20:12:23 -!- lahwran has quit (Excess Flood). 20:12:47 elliott: interleave is from what package? hoogle returns something that is not that. 20:13:09 where was that GHC typechecker bug again 20:13:16 that lets you write unsafeCoerce 20:13:17 boily, logict, iirc 20:18:12 -!- lahwran has joined. 20:18:34 kmc: it doesn't work 20:18:42 boily's bot is too clever 20:18:52 Taneb: indeed. just a moment, installing it ♪ 20:19:31 k 20:20:01 ~eval interleave 20:20:01 Error (1): No instance for (Control.Monad.Logic.Class.MonadLogic m0) 20:20:02 arising from a use of `e_1' 20:20:02 The type variable `m0' is ambiguous 20:20:02 Possible fix: add a type signature that fixes these type variable(s) 20:20:02 Note: there are several potential instances: 20:20:02 instance GHC.Base.Monad m => 20:20:02 Control.Monad.Logic.Class.MonadLogic (Control.Monad.Logic.LogicT m) 20:20:03 -- Defined in `logict-0.6:Control.Monad.Logic' 20:20:03 instance Control.Monad.Logic.Class.MonadLogic m => 20:20:04 Control.Monad.Logic.Class.MonadLogic 20:20:04 (Control.Monad.Trans.Reader.ReaderT e m) 20:20:05 -- Defined in `logict-0.6:Control.Monad.Logic.Class' 20:20:05 instance Control.Monad.Logic.Class.MonadLogic m => 20:20:06 Control.Monad.Logic.Class.MonadLogic 20:20:14 Taneb: done ♪ 20:20:16 ) fungot 20:20:16 kmc: let's face it: to have invented, among other things, the lord be thankit. ( lorna doone, by fritz leiber) to his size, huge chunk of meat: some hae meat, and this is the son of brave king uther pendragon and queen igraine..." 20:20:17 kmc: |value error: fungot 20:20:24 ok that got fixed :) 20:20:26 (that ♪ represents a microwave ding.) 20:20:34 :) 20:20:47 the display on the microwave at my house says "GOOD" when it's done cooking 20:21:07 ~eval interleave "magic" "science" 20:21:08 "msacgiiecnce" 20:22:18 ~eval ["one", "two", "three", "four"] >>- id 20:22:18 "otntewfohoruere" 20:23:29 ) "chicken" 20:23:29 boily: |syntax error 20:23:30 boily: | "chicken" 20:25:02 ~eval uncurry interleave $ fix (\ ~(xs,ys) -> (0:xs,1:ys)) :: [Int] 20:25:02 [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 20:25:04 : D 20:25:41 ~eval mconcat $ repeat [1, 0] 20:25:41 [1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 20:26:01 ~eval cycle [1,0] 20:26:02 [1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 20:26:04 ~eval let divide ~(x:y:xys) = let (xs,ys) = divide xys in (x:xs,y:ys) in fix (\xs -> let (xs, ys) = divide xs in interleave (0:xs) (1:ys)) 20:26:07 Error (1): 20:26:09 :( 20:26:12 what did i do a wrong ????? 20:27:01 ~moon 20:27:01 --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi 20:27:14 oh, yeah. never got to complete that command. 20:33:08 -!- oerjan has joined. 20:35:24 -!- ais523 has joined. 20:44:25 new idiom 20:44:26 LLL 20:44:33 "Long live Lambdas" 20:45:49 ltu 20:45:51 What language is ~eval? Looks suspiciously haskell-like 20:46:29 ~eval 3 20:46:30 3 20:46:32 suspicious indeed 20:46:35 ~eval 3**304 20:46:36 1.1088209803745658e145 20:46:39 one might say it is very haskell-like 20:46:40 ~eval 3^304 20:46:41 11088209803745658455297408217949153593283559345652332354189895396347888771377425204097816698610804252448289239688437517467894531354021357739846081 20:46:51 ~eval readFile "" 20:46:52 Error (1): No instance for (GHC.Show.Show (GHC.Types.IO GHC.Base.String)) 20:46:53 arising from a use of `M4279369338326919300.show_M4279369338326919300' 20:46:53 Possible fix: 20:46:53 add an instance declaration for 20:46:53 (GHC.Show.Show (GHC.Types.IO GHC.Base.String)) 20:46:57 ~eval let x = x x in () 20:46:57 Error (1): Occurs check: cannot construct the infinite type: t1 = t0 -> t1Occurs check: cannot construct the infinite type: t0 = t0 -> t1 20:47:00 that seems GHC-like, in particular 20:47:08 ais523: might be a trick 20:47:13 ais523 seems very ais523-like 20:47:15 ~eval TELL ME THE TRUTH 20:47:16 Error (1): Not in scope: data constructor `TELL'Not in scope: data constructor `ME'Not in scope: data constructor `THE'Not in scope: data constructor `TRUTH' 20:47:23 FreeFull: that's because I /am/ very ais523-like 20:47:25 ~eval print "fungot" 20:47:25 kmc: they say that some eggs could hatch in your pack, lucky or not. we shall be cursed with bell, book, by richard henry dana) 20:47:26 Error (1): No instance for (GHC.Show.Show (GHC.Types.IO ())) 20:47:26 arising from a use of `M8615961483540821306.show_M8615961483540821306' 20:47:26 Possible fix: 20:47:26 add an instance declaration for (GHC.Show.Show (GHC.Types.IO ())) 20:47:31 der 20:47:35 ~eval "fungot" 20:47:35 kmc: kill a lich once and future king," he whispered. " because now i know not. 20:47:35 "fungot" 20:47:42 already on the ignore then 20:47:51 ^ignore 20:49:01 ~eval instance Show IO () where { show x = "()" } 20:49:01 Error (1): :1:1: parse error on input `instance' 20:49:09 ~echo @echo `echo ^echo fungot 20:49:09 boily: running is good for your work is, however, it is even said she was born from his throat; the drunk vomited lumps of human flesh. ( van dale's groot woordenboek der nederlandse taal) 20:49:09 @echo `echo ^echo fungot 20:49:09 echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "cuttlefish!~cuttlefis@2607:fad8:4:6:f2de:f1ff:fe6c:6765", msgCommand = "PRIVMSG", msgParams = ["#esoteric",":@echo 20:49:10 `echo ^echo fungot"]} rest:"`echo ^echo fungot" 20:49:10 ^ignore 20:49:14 ​^echo fungot"]} rest:"`echo ^echo fungot" 20:49:40 FreeFull: there is no IO, except for System.Random. 20:49:56 Doesn't seem to do declaring instances anyway 20:50:08 probably ~eval expects an expression only 20:50:29 ~eval I# 3# 20:50:29 Error (1): Not in scope: data constructor `I#' 20:50:45 ooh i have an idea 20:50:59 http://hpaste.org/81946 20:51:09 or do i 20:51:10 ~eval fix (\_ -> 3) 20:51:11 3 20:51:15 Fix is there 20:51:16 elliott: as we say here, «gâte toé». 20:51:20 Means we can do fibbonacci 20:51:25 -!- stuntaneous has quit. 20:51:27 boily: is Imports.hs secret? 20:51:35 ~eval fix (\x y z -> y:x z (y+z)) 1 1 20:51:36 [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733,1134903170,1836311903,2971215073,4807526976,7778742049,12586269025,20365011074,32951280099,53316291173,86267571272,139583862445,225851433717,365435296162,591286729879,95672202 20:51:36 FreeFull: or use 'let' 20:51:40 elliott: hm? oh, no. hpasted it the other day. 20:51:45 > let fact 0 = 1; fact n = n * fact (n-1) in fact 5 20:51:47 120 20:51:54 I like fix better 20:51:58 «let .. in ..» is an expression 20:52:03 Especially when written as a lambda 20:52:06 elliott: http://hpaste.org/81905 20:52:15 elliott: just note that now it also has monad logic. 20:52:31 > fix ((0:) . scanl (+) 1) 20:52:33 [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946... 20:52:47 ~eval fix ((0:) . scanl (+) 1) 20:52:47 [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733,1134903170,1836311903,2971215073,4807526976,7778742049,12586269025,20365011074,32951280099,53316291173,86267571272,139583862445,225851433717,365435296162,591286729879,956722 20:53:01 Eval prints max irc message 20:53:03 Hmm 20:53:07 ~eval "3" 20:53:08 "3" 20:53:15 ~eval "" 20:53:16 Error (1): :1:2: 20:53:16 lexical error in string/character literal at character '\SOH' 20:53:26 ~eval replicate 510 'x' ++ "y" 20:53:27 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 20:53:28 It's safe 20:53:30 ~eval replicate 508 'x' ++ "y" 20:53:30 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 20:53:33 ~eval replicate 450 'x' ++ "y" 20:53:34 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 20:53:36 ~eval replicate 400 'x' ++ "y" 20:53:37 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy" 20:53:40 ~eval replicate 420 'x' ++ "y" 20:53:40 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy" 20:53:43 ~eval replicate 430 'x' ++ "y" 20:53:43 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy" 20:53:45 ~eval replicate 440 'x' ++ "y" 20:53:46 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 20:53:46 oh no. 20:53:48 ~eval replicate 438 'x' ++ "y" 20:53:49 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 20:53:49 no no no no no no. 20:53:51 ~eval replicate 435 'x' ++ "y" 20:53:51 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 20:53:53 ~eval replicate 433 'x' ++ "y" 20:53:54 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 20:53:56 ~eval replicate 432 'x' ++ "y" 20:53:56 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy 20:53:58 yesss 20:53:59 you AREN'T doing what I'm thinking you're doing? 20:54:02 -!- cuttlefish has quit (Remote host closed the connection). 20:54:05 omg 20:54:09 *smirk* 20:54:09 what fun is it if i dont get to exploit 20:54:10 it 20:54:16 I was only going to make it QUIT!! 20:54:32 actually, I doubt it would have worked. 20:54:34 unfortunately. 20:54:39 I don't think it would 20:54:41 what's the hax 20:54:45 But you can't find out without trying 20:54:52 kmc: it seems to be not length-limiting output at all 20:54:58 so I was trying to "overflow" it onto the next line somehow 20:55:09 but I don't think freenode's ircd works like that 20:55:18 You could have tried the CTCP newline escape thing 20:55:36 maybe boily had some cleverer exploit in mind I didn't though 20:55:46 not yet. 20:56:01 but still, I'm curious. 20:56:09 -!- david_werecat has quit (Read error: Connection reset by peer). 20:56:11 !bfjoust omnipotence http://sprunge.us/icWW 20:56:11 -!- cuttlefish has joined. 20:56:12 http://www.exploit-db.com/exploits/21210/ 20:56:21 -!- david_werecat has joined. 20:56:23 ~eval undefined 20:56:23 Error (1): No instance for (GHC.Show.Show a0) 20:56:24 arising from a use of `M2940199053026085901.show_M2940199053026085901' 20:56:24 The type variable `a0' is ambiguous 20:56:24 Possible fix: add a type signature that fixes these type variable(s) 20:56:24 Note: there are several potential instances: 20:56:24 ​Score for ais523_omnipotence: 70.5 20:56:24 instance GHC.Show.Show GHC.Types.Double 20:56:25 -- Defined in `base:GHC.Float' 20:56:25 This kind of exploit is common in IRC clients that handle CTCPs 20:56:25 instance GHC.Show.Show GHC.Types.Float 20:56:26 -- Defined in `base:GHC.Float' 20:56:26 instance (GHC.Real.Integral a, GHC.Show.Show a) => 20:56:27 GHC.Show.Show (GHC.Real.Ratio a) 20:56:27 70.5! 20:56:28 -- Defined in `base:GHC.Real' 20:56:28 ...plus 42 others 20:56:30 take that everyone else 20:56:30 ugh 20:56:34 ais523: wow 20:56:45 is bf joust broken again? 20:56:48 quintopia: I just got #1 on the hill by over 10 score 20:56:50 elliott: no, I don't think so 20:56:57 !bfjoust a a 20:57:02 ​Score for FreeFull_a: 3.7 20:57:07 only two losses, wow 20:57:10 omnipotence is very beatable, and in fact more than one program currently on the hill beats it 20:57:19 I forget what my previous bfjoust entries were 20:57:25 it's just good against the sorts of things people tend to write at the moment 20:57:37 it'll drop down once people start actually allowing for what it does 20:57:51 also it naturally loses to space_hotel, but it detects it by recognising its decoy setup and changes strategy :) 20:58:12 !bfjoust omnipotence http://sprunge.us/icWW 20:58:17 ​Score for ais523_omnipotence: 70.9 20:58:17 FreeFull overwrote the breakdown :( 20:58:21 that' better 20:58:24 *that's 20:58:45 What did I overwrite? 20:58:56 http://codu.org/eso/bfjoust/in_egobot/breakdown.txt 20:59:01 holds stats from the most recently submitted program 20:59:15 boily: hmm, looks like the exploit I thought up wouldn't work unless I convinced you to import a module lambdabot has 20:59:22 bah, I'm not even off the list yet 20:59:23 Sorry 20:59:26 it's OK, resubmitting fixes it 21:00:53 elliott: it does badly against programs that use traditional decoy setups and don't use 2-cycle clears 21:01:01 the sort of stuff that everyone was submitting in 2009, basically :) 21:01:03 Pink elephants on parade! 21:01:09 ^ sums up my current mental capacity 21:01:18 Although I do seem to be able to continue reading HPMOR 21:01:54 -!- DHeadshot has joined. 21:02:13 I'm not aseunk, just to clarify. Just sleep deprived 21:02:21 elliott: anyway, I wouldn't say this breaks BF Joust, it's exactly the sort of program I'd like to see doing well on the hill 21:02:31 And I always say "aseunk" instead of drunk, after a girl drunkingly IMed me to tell me that she was "aseunk" 21:04:23 Sgeo: hi 21:04:25 anyway, the thought process behind omnipotence is: you know all the boring copycats of slowpoke/space_elevator/ffspg, what they have in common is that they don't "naturally" handle fast rushes 21:04:29 and so need special cases for them 21:04:52 and what they do against fast rushes wouldn't work well against other sorts of programs 21:04:59 wi am le tired 21:05:04 so, the solution is: write a fast rush program which is also a defence program 21:05:22 so uh 21:05:28 did somebody finally break Sgeo 21:05:55 Sgeo: you'd say «je suis fatigué», but it misses the canonical French «le». 21:06:11 Phantom__Hoover, they broke me as well 21:06:11 I have decided toat the solution to my sleep problems is to stay awake, and to make sure I get everything such as dinner that requires sustained thought out of the way as soon as possible 21:06:16 I'm learning to code in C 21:06:22 Thus, dinner for breakfast, and then breakfast for dinner since breakfast is easy 21:06:23 Taneb, didn't you already break a while ago 21:06:29 Yeah 21:06:34 I dunno anymore 21:06:40 So when at 8 or 9 I am so tired I can just sleep 21:06:46 The other day someone called my name and high fived me 21:06:51 I had no idea who he was 21:07:14 He was 16 at the oldest and had a girlfriend, so none of us 21:08:35 maybe he just randomly high-fives people 21:08:39 and got a lucky guess 21:08:51 bah cecil no supprt continuations 21:08:53 first class 21:09:12 -!- DHeadshot has quit (Ping timeout: 264 seconds). 21:09:31 Phantom__Hoover, perhaps 21:09:41 And I am rather well known in the Hexham community 21:09:49 oh god i hope no interview today although seems late for that anyway i hope 21:10:17 had a fit of a stroke of genius, and google mapped hexham. 21:10:28 it's in the friggin middle of nowhere! 21:10:41 It... isn't 21:10:45 hey now 21:10:48 We've got a train station and everything 21:10:50 scotland's not far away 21:10:56 I think when I crack up randomly is proof I'm sleep deprived 21:11:11 Okay, maybe it is a little in the middle of nowhere to the north and south 21:11:15 And kind of west 21:11:25 maybe I'm overreacting at the presence of multiple golf courses. 21:11:40 it's only an hour to gretna, if you are suddenly siezed by the urge to get married in scotland 21:12:06 `addquote had a fit of a stroke of genius, and google mapped hexham. it's in the friggin middle of nowhere! 21:12:08 Phantom__Hoover: via what means of transport? walking? driving? 21:12:11 959) had a fit of a stroke of genius, and google mapped hexham. it's in the friggin middle of nowhere! 21:12:15 ais523, driving. 21:12:16 it's "fit of a stroke of genius" that makes that one 21:12:23 elliott: indeed 21:12:34 I might have only addquoted the first line 21:12:55 My imagination won't activate :( 21:13:04 ais523, if Taneb is so siezed by the fancy to get married in scotland that he decides to walk, he can be there in a mere 14 hours. 21:13:45 maybe "had a fit or a stroke" would be a better reason to googlemap hexham though 21:13:49 Phantom__Hoover: so how far is phantomhooverland from Gretna Green? 21:14:05 If I choose my trains carefully I could be in Edinburgh in three 21:14:08 right now? 200 miles 21:14:18 hmm 21:14:19 olsner: I do not have any fits nor strokes in public. that's unprofessional. 21:14:20 quite a way 21:14:23 normally, about twice as far as Taneb 21:14:45 wow, it's somewhat depressing that there's at least three other british people here 21:14:53 and they live nearer to each other than any of them do to me 21:14:57 Dear god York is south 21:15:15 Birmingham's pretty central, just you lot are all extreme north 21:15:20 Taneb: Phantom__Hoover: lets get together and go meet ais523 for intercal lessons and also to tease him about feather 21:15:23 y/y 21:15:38 y 21:15:39 -!- AnotherTest has quit (Quit: Leaving.). 21:15:42 ais523, well right now I'm within like half an hour by train of you 21:15:43 elliott, y 21:15:51 Phantom__Hoover: hmm 21:16:02 that only goes out to… Coventry? Wolverhampton? 21:16:04 I'm going down to Birmingham University this month anyway 21:16:10 Taneb: ooh 21:16:15 I will probably be there at the time 21:16:20 If the website lets me log in 21:16:31 unless it's on a thursday or friday or weekend, in which case I might still be there but probably won't be 21:16:44 Wednesday 21:16:48 Phantom__Hoover: there's a slight problem with our plan 21:16:54 we'll probably have to go to birmingham 21:17:10 seems like that's mostly just a problem for you 21:17:19 Taneb: what time this month 21:17:26 Either the 20th or the 27th 21:17:30 Phantom__Hoover: okay i realise you are scottish and so do not know the horror of birmingham 21:17:31 i like how google maps considers leamington spa more prominent than coventry 21:17:47 elliott: Birmingham is not that horrible 21:17:49 elliott, it was pretty much like belfast 21:17:52 except with less murals 21:17:55 it doesn't matter whether it is or isn't horrible 21:17:59 what matters is it's _meant_ to be horrible 21:18:03 Phantom__Hoover, Belfast was horrible 21:18:06 see 21:18:18 You couldn't fly a flag if you wanted to be not shot 21:18:24 it's one of the few major cities in the UK where you can walk into a car park on the ground floor, go up eight floors, then continue to walk on the level and come out at ground floor 21:18:42 I think it's eight, at least, it might only be six 21:18:44 what an advantage 21:19:08 okay there's a slight issue 21:19:18 how do we do this without me and Taneb ever recognising each other 21:19:18 well, it's not really an /advantage/, but there's something fun about living in a city which has no major hills /but/ you can't draw a consistent ground level in most places 21:19:26 since we have previously established that thta would cause the world to end 21:19:29 elliott, wear bags on your heads 21:19:36 elliott: it's OK if you're not in Hexham when you recognise each other 21:19:49 ais523: are you sure 21:19:53 elliott, blindfolds 21:19:54 pretty sure 21:19:57 Actually 21:20:02 we carry the essence of hexham within us 21:20:04 Have you ever seen the Comedy of Errors? 21:20:06 can you unrecognize somebody? 21:20:32 boily: can you undestroy the universe? 21:20:48 elliott: sure. 21:21:01 C-_, right? 21:21:12 apparently I live almost north of all the british isles ... south of orkney though 21:21:18 that's a pretty weird smiley Taneb 21:21:28 http://en.wikipedia.org/wiki/Wick,_Highland is almost the same latitude 21:21:38 Phantom__Hoover, it's a smiley that undestroys the universe 21:21:51 boily: what is the secret 21:21:56 do you stomp on the vacuum 21:22:22 http://fmota.eu/blog/base64-fixed-point.html 21:23:17 something something universal transformation. 21:23:34 ais523, do you know who to complain to with web.mat.bham.ac.uk/avd doesn't work 21:24:24 Taneb: probably the maths department's secretaries, who would forward it on to whoever was responsible for it 21:24:30 Right 21:24:33 the URL indicates that it's being handled by the individual department 21:25:22 -!- zzo38 has joined. 21:26:30 It will be the closest I've ever been, to my knowledge, to another person in this channel 21:26:44 um 21:26:50 you've probably been pretty close to me at some point 21:26:56 how romantic! 21:27:02 I'm fairly sure one of us is imaginary, elliott 21:27:04 that's the bond of hexham 21:27:19 `? hexham 21:27:19 Gregor: You have 4 new messages. '/msg lambdabot @messages' to read them. 21:27:19 elliott must keep careful tabs on Taneb to avoid meeting him 21:27:20 Hexham is a European town. There are nine people in Hexham, and at least two of them are in this channel. Taneb looks after the ham. 21:27:29 tanbebs 21:27:30 And there are more secondary sources confirming my existence than yours 21:27:30 `? finland 21:27:32 Finland is a European country. There are two people in Finland, and at least nine of them are in this channel. Corun drives the bus. 21:27:47 (is Corun anyone?) 21:27:53 someone who used to be here 21:28:02 awww 21:28:03 oerjan: Yeah, I suspected that chmod -r would break shit X-D 21:28:12 did something happen 21:28:14 corun is real?? 21:28:25 olsner, yeah, who else would drive the bus 21:28:35 that implies a real bus, too. 21:29:21 elliott: the scary thing about omnipotence is that I was testing against an old hill, where it did even better 21:29:45 boily, going back a bit, the least densely populated area of England is legally part of Hexham 21:30:17 Ish 21:31:51 we also have aberrations here, like île dorval. 21:32:14 `olist 21:32:16 shachaf oerjan Sgeo 21:32:40 -!- Nisstyre has quit (Quit: Leaving). 21:32:42 Taneb: surely any area of England that contains no people is equally the least densely populated? 21:32:44 which list is the olist? 21:32:51 Taneb: https://en.wikipedia.org/wiki/L%27%C3%8Ele-Dorval,_Quebec 21:32:58 you could draw a very large area that just avoided all the people 21:33:26 `alist 21:33:27 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: alist: not found 21:33:42 `blist 21:33:43 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: blist: not found 21:33:46 `clist 21:33:47 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: clist: not found 21:33:49 `dlist 21:33:51 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: dlist: not found 21:33:53 `elist 21:33:55 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: elist: not found 21:34:06 ais523, the largest sensiblly shaped area 21:34:12 `run ls bin/?list 21:34:14 bin/olist 21:34:20 boily: that would probably have been easier ;) 21:34:30 I'm bored. I need something to do. 21:34:35 ais523: Don't spoil boily's fun. 21:34:45 boily: Go learn Dylan, like Sgeo is. 21:34:56 list could be renamed hlist or mlist for consistency 21:34:59 boily: see if you can beat my BF Joust programs :) 21:35:14 Taneb: I thought o stood for oerjan. 21:35:36 h for "Hussie" and m for "Me" 21:35:43 shachaf: I said bored, not sleep deprived :p 21:35:48 `list 21:35:50 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 21:35:51 but yeah. bfjousting sounds like a good idea. 21:37:34 (that wasn't an actual list, I was just seeing what it said) 21:37:37 (sorry) 21:37:44 hmm 21:37:47 `cat bin/list 21:37:49 echo Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 21:37:53 ah, boring 21:37:58 I thought it would be a list of all the people who had done `list 21:38:02 ^show list 21:38:02 (Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot)S 21:38:04 that would be interesting 21:38:14 `run mv bin/{,s}list 21:38:22 No output. 21:38:27 `cat quine 21:38:28 cat: quine: No such file or directory 21:38:32 `cat bin/quine 21:38:33 cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^>]*> //' #Worst cheating quine ever? 21:38:54 `run cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed 's/[^<]*.*//' 21:38:57 elliott 21:39:04 `ls /var/ 21:39:06 irclogs 21:39:10 `ls /var/irclogs 21:39:12 _ai \ _corewars \ _esoteric \ _esoteric-chess-variants \ _esoteric-minecraft \ _glogbot \ index.php \ log \ log.css \ log.js \ _plof \ raw \ _scapegoat \ stalker.php 21:39:21 hm 21:39:49 `ls /var/irclogs/_esoteric-minecraft 21:39:51 2011-03-19-raw.txt \ 2011-03-19.txt \ 2011-03-20-raw.txt \ 2011-03-20.txt \ 2011-03-21-raw.txt \ 2011-03-21.txt \ 2011-03-22-raw.txt \ 2011-03-22.txt \ 2011-03-23-raw.txt \ 2011-03-23.txt \ 2011-03-26-raw.txt \ 2011-03-26.txt \ 2011-03-27-raw.txt \ 2011-03-27.txt \ 2011-03-28-raw.txt \ 2011-03-28.txt \ 2011-03-29-raw.txt \ 2011-03-29.txt \ 2011-03- 21:40:02 there was a minecraft? 21:40:06 Do HackEgo commands get access to the name of the person issuing the command? 21:40:07 Yeah 21:40:12 We had our own server at one point 21:40:13 `run echo "#!/bin/sh" >bin/list; echo 'cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); sed -i "s/.\$nam[e]./$name \&" bin/list; echo "$name"' >>bin/list 21:40:16 No output. 21:40:18 `run chmod +x bin/list 21:40:21 There was. There is, but there was too 21:40:22 No output. 21:40:22 `list 21:40:24 `list 21:40:28 sed: -e expression #1, char 20: unterminated `s' command \ Taneb 21:40:29 sed: -e expression #1, char 22: unterminated `s' command \ HackEgo 21:40:31 oerjan: you fix it 21:40:34 ais523: or you 21:41:11 `run echo "#!/bin/sh" >bin/list; echo 'cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); sed -i "s/.\$nam[e]./$name \&/" bin/list; echo "$name"' >>bin/list 21:41:15 No output. 21:41:18 `list 21:41:21 sed: can't read bin/list: No such file or directory \ ais523 21:41:29 I wonder if I can buy surströmming in this city... 21:41:31 oh, the cd 21:41:32 er, what? 21:41:33 oh 21:41:47 ais523: it should probably also not add duplicates >:) 21:42:06 ais523: You should instead make bin/list update itself. 21:42:13 `run echo "#!/bin/sh" >bin/list; echo 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; sed -i "s/.\$nam[e]./$name \&/" bin/list; echo "$name"' >>bin/list 21:42:16 No output. 21:42:20 shachaf: elliott did, I just fixed it 21:42:28 `list 21:42:33 this doesn't eliminate duplicates yet 21:42:34 elliott 21:42:38 `list 21:42:40 I strongly disapprove of a version that just searches the logs. 21:42:42 sed: -e expression #1, char 23: unterminated `s' command \ shachaf 21:42:42 `list 21:42:45 sed: -e expression #1, char 23: unterminated `s' command \ Sgeo 21:42:46 hmm 21:42:49 shachaf: it doesn't search the logs 21:42:55 it just looks at the logs to see who sent the command 21:43:07 Oh. 21:43:11 :/ what if it gets it wrong 21:43:20 If I say `list then ais523 says something unrelated 21:43:22 it coudl grep `list 21:43:25 to remove most false positives 21:43:27 u*could 21:43:31 *jasd 21:43:42 I see. 21:44:04 ais523: I think the constraint of a program that can only keep state by modifying its own file is interesting 21:44:11 unless you cheat and just store all the data in a string or whatever 21:44:32 hmm 21:45:30 `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; echo -n $name '' >> bin/list; echo ' 21:45:34 oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; echo -n $name >> bin/list; echo 21:45:38 err 21:45:53 `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; echo -n $name "" >> bin/list; echo ' 21:45:55 oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; echo -n $name "" >> bin/list; echo 21:46:03 `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; echo -n $name "" >> bin/list; echo ' >> /bin/list 21:46:04 bash: /bin/list: Read-only file system 21:46:09 `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; echo -n $name "" >> bin/list; echo ' >> bin/list 21:46:13 No output. 21:46:17 `list 21:46:24 No output. 21:46:28 `list 21:46:35 ais523 21:46:38 elliott: there we go 21:46:38 hmm 21:46:44 but it doesn't list your name the first time you do it 21:46:49 indeed, it tells you the old list 21:46:58 let me see if I can fix it to avoid duplicates 21:47:44 `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo ' >> bin/list 21:47:47 No output. 21:47:51 `list 21:47:57 No output. 21:47:59 `list 21:48:01 ais523 21:48:03 `list 21:48:06 ais523 21:48:14 `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo ' >> bin/list 21:48:18 No output. 21:48:20 there we go 21:48:28 now we have a `list working just like I wanted it to :) 21:48:34 `list 21:48:34 `list 21:48:41 No output. 21:48:41 uh oh 21:48:44 boily 21:48:45 uuuh... 21:48:48 ah! 21:48:50 up to hackego concurrency issues 21:48:52 ais523: there is a way it could work even when multiple people do it 21:49:03 nah, I like the randomness 21:49:13 `list 21:49:14 * elliott thinks it should include your name even if you weren't previously on the list 21:49:19 boily elliott 21:49:20 because who doesn't like being pinged? 21:49:36 elliott: this way it's harder to figure out what it does 21:49:44 `list 21:49:45 ​/hackenv/bin/list: 2: Syntax error: Unterminated quoted string 21:49:49 hmm 21:49:53 darn. 21:49:56 `cat bin/list 21:49:58 ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo boily elliott 21:49:14: * elliott thinks it should include your name even if you weren't previously on the list 21:50:03 lol 21:50:08 ha ha ha! 21:50:12 elliott: this is your fault :) 21:50:12 -!- epicmonkey has quit (Ping timeout: 248 seconds). 21:52:16 `run echo "#!/bin/sh" >bin/list; echo -n 'oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo ' >> bin/list 21:52:19 No output. 21:52:24 elliott: now it can get the wrong name from a /me too :) 21:52:35 what about a /quit? 21:52:41 that won't work 21:53:02 probably 21:53:25 ~echo `list 21:53:25 `list 21:53:31 No output. 21:53:35 `list 21:53:42 cuttlefish 21:53:47 good enough. 21:53:55 quintopia: which year did anticipation top the hill? 2012 or 2013? 21:53:56 `list 21:54:03 cuttlefish boily 21:54:24 ais523: join the list! 21:54:32 `list 21:54:39 cuttlefish boily elliott 21:54:40 nah, I like seeing how long I can go before I join it by accident 21:54:50 ais523: I would guess... forever 21:54:57 `list 21:54:57 `list 21:54:58 `list 21:54:58 `list 21:54:59 `list 21:55:03 cuttlefish boily elliott Taneb 21:55:04 cuttlefish boily elliott Taneb 21:55:04 let's see if that duplicate checking works 21:55:09 cuttlefish boily elliott Taneb 21:55:13 cuttlefish boily elliott Taneb 21:55:16 cuttlefish boily elliott Taneb HackEgo 21:55:18 bonus points if you get HackEgo on the list 21:55:18 hahaha 21:55:22 `list `list 21:55:23 i was hoping that would happen 21:55:25 cuttlefish boily elliott Taneb HackEgo 21:55:26 so was I 21:55:39 ^echo `list 21:55:40 `list `list 21:55:43 -!- HackEgo has quit (Remote host closed the connection). 21:55:50 Taneb............................. 21:55:53 Do I get an award? 21:56:02 did you segfault Gregor 21:56:03 how did hagb4rd get on the list himself??? 21:56:14 boily: race condition 21:56:16 s/hagb4rd/HackEgo 21:56:24 boily: because hackego said the list 21:56:26 and then the script ran 21:56:29 looked at the last line in the logs... 21:56:46 so wait, why did HackEgo crash there? 21:57:10 ~eval "a\8b" 21:57:10 "a\bb" 21:57:27 ~eval "a\8\&8b" 21:57:27 "a\b8b" 21:57:54 > putStrLn "\8" 21:57:56 No instance for (GHC.Show.Show (GHC.Types.IO ())) 21:57:56 arising from a use of ... 21:58:28 elliott: something wrong with the bot blacklist? 21:59:06 hmm, maybe 22:00:12 why would we blacklist bots? we have such a nice variety of them here. 22:00:37 Do HackEgo commands get access to the name of the person issuing the command? <-- no, although i suggested it to Gregor 22:01:42 boily: to prevent botloops 22:01:49 the bots are designed to ignore each other 22:01:56 because otherwise someone gets the bots to spout commands for the other bots 22:02:02 and you need a bot owner or an op in to stop the spam 22:02:05 boily: there is no good reason. 22:02:08 it is because people hate happiness 22:02:27 Should there also be a environment variable for the recipient of the command (either some channel, or HackEgo directly)? And of the glogbot timestamp of the message? 22:03:01 ais523: I like elliott's explanation better. 22:03:24 zzo38: yeah, that seems like a good idea 22:03:26 There should be an opped bot capable of detecting ... hmm 22:03:55 Well, no, no way to catch all botloops, is there? 22:03:56 just kick anyone who says the same line three times in a row, could help 22:03:58 Maybe a spam filter 22:04:07 but you can get loops that avoid that 22:04:11 ais523, get the bots to increment a number 22:04:15 alternatively, anyone who posts too many posts in a set time 22:04:17 ais523: that's mean 22:04:17 ais523: that's mean 22:04:18 ais523: that's mean 22:04:28 Although to prevent bots from reading commands from other bot outputs I would prefer a different ,much simpler, siolution: To make their output to be NOTICE message rather than PRIVMSG. 22:04:33 it's hard to get the bots to intentionally slow down the loop 22:04:47 bah, too much effort. 22:05:05 actually, you wouldn't kick 22:05:08 you'd +m the channel for a few seconds 22:05:08 -!- boily has quit (Quit: Poulet!). 22:05:11 -!- cuttlefish has quit (Remote host closed the connection). 22:05:31 or +q one of the affecte dusers for a few seconds 22:05:34 *affected 22:09:26 I think using NOTICE messages would be the simplest and best solution and the one recommended by the RFC. However, there are others. One would be to not take commands inside the channel and only private, although sometimes you want the results to be public so it might not best. Another is if they added a user mode to prevent receiving channel messages from someone having the same mode. 22:11:04 hmm, that's an interesting idea for a mode 22:11:49 The server would have to be changed to do that, though. 22:13:30 I would recommend and prefer to just make them NOTICE messages. 22:15:02 So, if `list is for something, what's the old list? 22:15:08 what old list 22:15:09 `run ls bin/?list 22:15:13 this is the only list there ever was 22:15:16 and the only list anyone needs 22:15:32 Sgeo: slist 22:15:51 also someone get zzo38 out of his autobotloop, please. 22:16:36 Is hackego.. dead? 22:16:41 :( 22:16:44 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds). 22:16:56 really most sincerely dead 22:17:00 -!- Phantom__Hoover has joined. 22:27:15 -!- augur has quit (Remote host closed the connection). 22:29:32 -!- oerjan has quit (Quit: leaving). 22:32:31 -!- oerjan has joined. 22:48:59 -!- Taneb has quit (Quit: Leaving). 22:52:56 Gregor: Taneb managed to get fungot to kill HackEgo 22:52:57 ^ul (pong)S 22:52:57 what's up with fungot? 22:52:57 ais523: they say that you should try another one. 22:52:57 pong 22:52:57 ais523: they say that real hackers never sleep near invisible ring wraiths. 22:53:03 are, there we go 22:54:46 oerjan: good mornign 23:01:18 elliott: good midnight 23:01:22 oerjan: happy birth 23:03:21 oerjan: it's not midnight for me and elliott for another 57 minutes or so 23:03:36 nobody ever remembers Phantom__Hoover 23:03:51 @quote nobody.*remembers 23:03:51 No quotes match. You untyped fool! 23:04:01 Phantom__Hoover: if HackEgo were here, you could read the `list 23:04:04 then people would remember you 23:04:07 Oh. 23:04:46 shachaf: apparently i am going to have some kind of snowpocalypse 23:05:01 oh no 23:05:05 flee to california 23:05:15 too late 23:05:26 it's never too late to go west 23:05:32 i've just got to buy lucky charms 23:05:32 build snow california 23:25:37 -!- carado has quit (Ping timeout: 246 seconds). 23:31:24 -!- oerjan has quit (Quit: leaving). 23:40:58 so what are the legitimate use cases for printf's %n? 23:42:17 kmc: things like tabular output 23:42:24 where you're printing spaces to make things line up 23:42:33 mm 23:42:55 -!- DHeadshot has joined. 23:43:07 You can count the output by the return of printf, though. You can also use alignment in the formats to line up columns. 23:44:35 -!- oerjan has joined. 23:50:32 kmc: Now you're migrating conversations across channels you're not even in. 23:52:28 i am? 23:53:43 Perhaps it's just a coïncidence that %n came up in multiple places. 23:54:07 where else did it come up? 23:54:20 Gregor: HackEgo is missing HTH HELP 23:56:17 #cslounge 23:56:22 ok 23:56:27 then maybe it's because lexande asked me about %n 23:56:35 a grand circuitous route 23:56:49 OK then that would be it. 23:56:55 oerjan: HANH (Have A Nice Help) 23:57:11 is a HTH like a CTCP? 23:57:19 MAYBE 23:57:25 -!- Nisstyre-laptop has joined.