00:00:00 Score for impomatic_sexyghoul: 37.4 00:00:11 I also think variable-length arrays should not belong, either. 00:00:32 I think that ducks belong in the C standard. 00:00:36 Evil, rabid ducks. 00:00:38 Do you agree, zzo38? 00:00:54 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]). 00:00:57 elliott: No. 00:01:11 maybe that's because you're wrong? 00:01:23 Normal ducks do not belong and evil ducks also do not belong. 00:01:35 -!- augur has joined. 00:02:40 why 00:04:42 Do you think a computer commonly has machine instructions for complex numbers and rabid ducks? 00:04:55 yes 00:05:03 -!- augur has quit (Remote host closed the connection). 00:05:04 C is not a cypher ASM. 00:05:08 cypher for ASM* 00:05:18 -!- Behold has joined. 00:05:29 Lymia: I know but that isn't what I meant. 00:06:37 Do you think a computer commonly has machine instructions for printing to screen? 00:07:29 hmm, it doesn't work 00:07:30 Do you think a computer commonly has machine instructions for string manipulation? 00:07:31 that's disappointing 00:08:40 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds). 00:09:06 Lymia: For printing to screen, that is a part of the operating system (or BIOS) and the C libraries generally include operating system functions. For string manipulation, although it is not directly machine instructions it is just a way of doing, such as: strlen(x) finds how many bytes before a null byte, and so on. 00:09:16 So. 00:09:16 same with complex numbers 00:09:19 What's wrong with complex numbers? 00:09:22 they're just "ways of doing" 00:09:33 There are some good features in C99 though, but not a lot. 00:09:42 What's fundamentally different about it. 00:09:54 [expecting coherent, logical reasons from zzo38] 00:10:00 Complex numbers does not seem to fit with C very well, especially not by the program language itself. 00:10:16 But maybe in a math library you might make up some functions for complex numbers. 00:10:32 If you don't like it, don't use it. 00:10:43 It's not like the compiler's going to generate code for complex numbers in your program unless it's needed. 00:10:44 well that's silly 00:10:50 there's plenty of reasons to avoid language feature bloat 00:10:58 but complex numbers are a perfectly valid, useful language feature 00:11:03 albeit, one that was not implemented very well in C99 00:11:15 Unless you're implementing a compiler, I don't see a reason to care that much. 00:11:23 (using "I"? seriously? for all the paranoia the C committee have about clashes that's just ridiculous) 00:11:30 Lymia: easier to reason about simpler languages. 00:11:43 But I do not believe complex numbers should be a fundamental data type. Just like, operating system stuff is not good feature in the programming language, it is good for standard library function though (otherwise you cannot write a program at all). 00:11:45 elliott, depends on what you're talking about. 00:11:48 Extra data types? 00:12:01 any good language can duplicate the complex number functionality in a library, anyway 00:12:02 You don't have to reason about them unless you use them. 00:12:03 C can't 00:12:20 elliott, struct complex{float r; float i;} 00:12:26 Lymia: can't implement + on that. 00:12:46 It'd be possible to implement the logic for it at least. 00:12:48 But still. 00:13:00 With no operator overloading, it's not a bad idea. 00:13:00 =p 00:13:58 pikhq: BTW, st seems to do multibyte perfectly. 00:14:11 -!- elliott_ has joined. 00:14:16 * Lymia hugs elliott 00:14:16 Unicode! Give me it! 00:14:19 Well, UTF-8. 00:14:43 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 00:15:51 oi 00:15:55 æßeđæe¶ 00:15:58 yep 00:16:00 working perfectly 00:16:11 `translateto ja hello world 00:16:17 `translatefromto en ja hello world 00:16:20 oh wait 00:16:21 Gregor! 00:16:41 No, I think it should have directives to catch compiler errors (such as #catcherror and so on), and then write custom codes to deal with it. Such as, catching negative array index error, cannot do + on structures error, wrong implicit cast error, too large number error, etc. 00:16:52 I don'y. 00:16:55 Because that's ridiculous. 00:16:56 But floating hexadecimal constants is doesn't seems necessary. 00:16:56 *'t. 00:18:39 You can then implement operator overloading by using the functions for catching compiler errors. And you can implement other things with it, too. 00:18:49 .... 00:19:01 elliott, I see why you said that now 00:19:03 wait is this Lymia's first encounter with zzo38? 00:19:08 Yes. 00:19:11 heh 00:19:15 hope you're having fun 00:19:31 Who is he, and why is he here? 00:19:32 D= 00:19:40 And then you can make complex numbers from this too, by placing the catching codes in a header file. 00:20:00 zzo38, tell me you're trolling. 00:20:00 Lymia: http://esolangs.org/wiki/User:Zzo38 00:20:41 That also includes errors such as access a member which is not exist in the structure/union, and that you are calling a function which does not exist, and so on. 00:20:52 .............. 00:21:02 Explain how this would allow you to implement these things again? 00:22:22 Lymia: For example, you define a typedef struct for complex numbers, and then when you try to add them using + operator it throws a compiler error which you must catch in order to modify the program to a valid code (or to another invalid code which will be caught again differently to make valid next time instead). 00:22:43 And why would you do this, instead of say, adding a construct like this. 00:23:01 operater struct complex +(struct complex a, struct complex b) 00:23:32 I think a way to catch compiler errors in this way, though, would have a lot of possible uses. 00:23:33 *operator 00:24:21 zzo38, so. 00:24:28 You want to write syntaticly invalid code. 00:24:40 And add a new construct to define a behavior for it other than erroring. 00:24:41 I also do not like how C++ can override the *x and x[] operator separately, that doesn't even make sense. I don't even use C++, because C is works OK. 00:25:06 Lymia: Syntax errors, but also errors other than syntax errors, too. 00:25:15 The people at IOCCC would like it, but not many other people. 00:25:56 How old is zzo38? 00:26:14 No one knows. 00:26:23 didn't he say he was 16 00:26:49 elliott_: Actually I did not say at all. And I will not say. 00:26:49 I'm not sure to consider this a mitgating factor, or a reason to cringe more. 00:27:14 zzo38: haven't you mentioned highschool before, I think you did, dunno 00:27:45 elliott: I do not remember whether or not I did. 00:28:02 elliott didn't say that, elliott_ did! 00:28:26 Sorry I made a mistake 00:28:39 -!- HackEgo has joined. 00:28:50 `gcc 00:28:51 Failed to clone the environment! 00:28:55 lawl 00:29:00 SUPA SUCCESS 00:29:23 `killall -9 spamd 00:29:24 Failed to clone the environment! 00:29:31 `run killall -9 multibot 00:29:31 Failed to clone the environment! 00:29:36 :v 00:30:09 Why does everybody immediately assume that not only did I write HackEgo in a stupid way, but I run every command AS FUCKING ROOT 00:30:25 Because you're so stupid usually, Gregor. 00:30:37 `run echo "Failed to clone the environment!" 00:30:38 Failed to clone the environment! 00:30:43 IT WORKED 00:30:55 `run hug 00:30:55 Failed to clone the environment! 00:30:58 :( 00:31:08 PATIENCE 00:32:39 `./test 00:32:41 Failed to clone the environment! 00:33:21 `run ./test 2>&1; echo $? 00:33:22 Failed to clone the environment! 00:36:39 `run ./test 2>&1; echo $? 00:36:40 No output. 00:36:45 Gregor: Thanks for letting us know :P 00:36:49 Hmm, what ... 00:36:52 It doesn't work yet. 00:36:55 X-D 00:36:57 SRY 00:36:57 I haven't let you know because I'M NOT DONE YET 00:37:00 I'm still installing shit 00:37:01 OKAY 00:37:03 GREGOR MR. 00:37:04 EGG-MAN 00:37:05 GREGSHITS 00:37:07 GREGHAT 00:37:33 -!- Sgeo has quit (Read error: Connection reset by peer). 00:38:02 -!- Sgeo has joined. 00:39:18 `run gcc 2>&1 00:39:20 gcc: no input files 00:39:25 `run ./test 2>&1; echo $? 00:39:27 gcc: #!/bin/sh \ name=$(mktemp) \ gcc -x c -O2 -std=gnu99 "$(tail -n +1 "$0")" -o "$name" || exit $? \ shift \ "$name" "$@"; st=$? \ rm -f "$name" 2>/dev/null \ exit $?: No such file or directory \ gcc: warning: '-x c' after last input file has no effect \ gcc: no input files \ 1 00:39:34 X-D 00:39:35 wtfbbq 00:39:37 Durr 00:39:40 I see what I did, kinda 00:39:42 `run rm -rf * 00:39:43 No output. 00:39:48 *sigh* 00:39:51 Gregor gets to revert. 00:39:52 elliott, don't you like me? 00:39:52 =3 00:39:57 `ls 00:39:58 It's trivially revertable. 00:39:58 babies \ bin \ paste \ tmpdir.2587 00:40:03 So you've proven that you can ... minorly annoy! 00:40:06 Oh look, it DIDN'T EVEN HAPPEN 00:40:10 X-D 00:40:14 Yes it did 00:40:15 Where's quotes gone 00:40:18 `run :(){:|:&};: 00:40:19 No output. 00:40:21 Also, anyone gets to revert. 00:40:25 `quote 00:40:27 Hm, where has quotes gone ... 00:40:27 No output. 00:40:34 Gregor you are a bad person for removing my genius quote db 00:40:36 I want compensation 00:40:46 `help 00:40:47 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 00:40:51 `run :(){:|:&};:;cat 00:40:51 No output. 00:40:54 :< 00:41:01 "`revert" should *really* just default to last revision :P 00:41:28 `revert 1 00:41:29 Done. 00:41:31 `ls 00:41:32 babies \ bin \ paste \ tmpdir.2875 00:41:33 X-D 00:41:38 ... weird 00:41:38 -!- FireFly has quit (Quit: swatted to death). 00:41:41 You neglected the quote DB, methinks. 00:41:49 Please tell me you didn't remove the old files. 00:41:53 Gregor, what protections do you have applied? 00:41:59 Lymia: more than you can possibly circumvent. 00:42:00 `revert 77d154694a2f 00:42:07 `ls /dev/urandom 00:42:08 No output. 00:42:09 Lymia: More than I want to explain for the fiftieth time. 00:42:15 `ls /dev 00:42:16 null 00:42:22 `revert 0 00:42:24 Done. 00:42:24 Lymia: The only way to escape the ability to revert is by breaking plash, which is a VERY well-tested system. That will land you in an empty chroot. 00:42:27 Did the wrong reversion :P 00:42:28 `ls 00:42:29 babies \ bin \ paste \ tmpdir.3086 00:42:29 Empty apart from one file, the libc. 00:42:33 Talking to the kernel will do nothing. 00:42:37 wtfbbq 00:42:37 You cannot change the file in any way. 00:42:39 Did I break revert :P 00:42:43 You then need to elevate to root with just system calls. 00:42:52 i.e. a major linux exploit. 00:42:54 You then need to chroot(".."). 00:43:00 And _then_ you can fuck with files. 00:43:08 But, uhh, you could just break any linux system you have access to if you could do that. 00:43:14 So HackEgo breaking is really the least of our worries :P 00:43:28 Anyway even then you could just remove the HackEgo files. 00:43:33 Well, you're root actually. 00:43:37 So you could do anything. 00:43:39 But yeah :P 00:44:01 `quote 00:44:03 171) OK, so is conspiring to conspire to commit a crime a crime? Let's all get together and talk about defacing public property sometime 00:44:47 `./test 00:44:48 No output. 00:44:49 `find / > filelist 00:44:51 No output. 00:44:52 `url filelist 00:44:52 OK, I have to change it. 00:44:52 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/filelist 00:44:54 With my fist. 00:45:03 Lymia: FFS, "`run find / | paste". 00:45:10 If Linux has some wrong thing like this, then they have to fix them in the next version. 00:45:11 `url bin/rungcc 00:45:12 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/rungcc 00:45:18 elliott, what does paste do? 00:45:19 Damn it, the plash guys just HAD to go and fix things. 00:45:20 Jerks. 00:45:21 Lymia: TIAS 00:45:26 `find / | aste 00:45:26 No output. 00:45:29 `find / | paste 00:45:30 No output. 00:45:32 ... 00:45:34 I SAID RUN IN FRONT 00:45:43 `run find / | paste 00:45:43 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.1790 00:45:44 * Lymia hides 00:45:44 YOU DISCOMBOBULATED CORPSE OF A HUMAN DREDGE 00:45:45 OR 00:45:45 Sorry. 00:45:46 SOMETHING 00:45:53 Apologies! I want BLOOD! 00:45:58 * Lymia hands elliott a hug 00:46:06 `run find | paste 00:46:07 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25839 00:46:08 `run ./test 2>&1 00:46:10 gcc: #!/bin/sh \ name=$(mktemp) \ gcc -x c -O2 -std=gnu99 "$(tail -n +1 "$0")" -o "$name" || exit $? \ shift \ "$name" "$@"; st=$? \ rm -f "$name" 2>/dev/null \ exit $?: No such file or directory \ gcc: warning: '-x c' after last input file has no effect \ gcc: no input files 00:46:19 Aha 00:46:35 `run echo <(echo hi) 00:46:36 /dev/fd/63 00:46:58 `fetch http://sprunge.us/WCVL 00:47:00 2011-02-05 01:05:17 URL:http://sprunge.us/WCVL [151] -> "WCVL" [1] 00:47:05 `run mv WCVL bin/rungcc; chmod +x bin/rungcc 00:47:06 No output. 00:47:07 `run ./test 2>&1 00:47:08 /tmp/hackenv.3933/bin/rungcc: line 3: syntax error near unexpected token `(' \ /tmp/hackenv.3933/bin/rungcc: line 3: `gcc -x c -O2 -std=gnu99 <(tail -n +1 "$1") -o "$name" || exit $?' 00:47:11 `run ls /dev/random 00:47:12 No output. 00:47:13 Oh. 00:47:13 `run ls /dev/urandom 00:47:14 No output. 00:47:16 :< 00:47:31 `run sed -i 's/#!.*/#!\/usr\/bin\/env bash/' bin/rungcc 00:47:32 No output. 00:47:34 `cat bin/rungcc 00:47:35 #!/usr/bin/env bash \ name=$(mktemp) \ gcc -x c -O2 -std=gnu99 <(tail -n +1 "$1") -o "$name" || exit $? \ shift \ "$name" "$@"; st=$? \ rm -f "$name" 2>/dev/null \ exit $? \ 00:47:37 `run ./test 2>&1 00:47:38 gcc: /dev/fd/63: No such file or directory \ gcc: warning: '-x c' after last input file has no effect \ gcc: no input files \ /usr/bin/tail: write error: Broken pipe 00:47:46 elliott, what are you trying to do. 00:47:49 I reaaaally hate gcc. 00:47:59 Reaaaaaaaally. 00:48:28 `fetch http://sprunge.us/hVhM 00:48:29 2011-02-05 01:06:46 URL:http://sprunge.us/hVhM [171] -> "hVhM" [1] 00:48:30 `echo "int main(){printf(\"test\");return 0;}" > test.c 00:48:31 "int main(){printf(\"test\");return 0;}" > test.c 00:48:34 `run mv hVhM bin/rungcc; chmod +x bin/rungcc 00:48:35 No output. 00:48:36 `run echo "int main(){printf(\"test\");return 0;}" > test.c 00:48:37 No output. 00:48:38 `run ./test 2>&1 00:48:39 gcc: /dev/stdin: No such file or directory \ gcc: warning: '-x c' after last input file has no effect \ gcc: no input files 00:48:43 ... 00:48:45 `run gcc -o test test.c 00:48:49 `run ./test 00:48:50 Gregor, please make /dev/fd work. 00:48:51 No output. 00:48:52 No output. 00:48:52 Or at least /dev/stdin. 00:48:53 kthx 00:48:56 `run ./test | paste 00:48:57 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5039 00:49:05 `ls 00:49:06 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine \ quotes \ test \ test.c \ tmpdir.4559 00:49:19 `rm 1 00:49:19 elliott_: ... wtf 00:49:19 No output. 00:49:32 Gregor: /dev/fd doesn't exist so bash can't do <(foo). 00:49:38 Gregor: /dev/stdin doesn't exist so I can't do it the other way. 00:49:43 All you have in /dev is null :P 00:49:55 "Just" some mknods away. 00:49:59 I need to learn more Linuxfu. 00:50:00 -!- Behold has quit (Remote host closed the connection). 00:50:00 (Or some cps :P) 00:50:02 ORLY? Hm :P 00:50:08 `run ls /bin 00:50:09 bash \ bunzip2 \ bzcat \ bzcmp \ bzdiff \ bzegrep \ bzexe \ bzfgrep \ bzgrep \ bzip2 \ bzip2recover \ bzless \ bzmore \ cat \ chgrp \ chmod \ chown \ cp \ cpio \ date \ dd \ df \ dir \ dmesg \ dnsdomainname \ echo \ ed \ egrep \ false \ fgrep \ grep \ gunzip \ gzexe \ gzip \ hostname \ ip \ kill \ ln \ login \ ls \ lsmod 00:50:09 erm 00:50:12 `run ls /dev 00:50:13 null 00:50:14 So yeah :P 00:50:43 `run echo $PATH 00:50:43 /tmp/hackenv.4752/bin:/opt/python27/bin:/usr/bin:/bin 00:50:49 `ls /usr/bin 00:50:50 822-date \ X11 \ [ \ a2p \ addpart \ addr2line \ apropos \ apt-cache \ apt-cdrom \ apt-config \ apt-extracttemplates \ apt-ftparchive \ apt-get \ apt-key \ apt-mark \ apt-sortpkgs \ aptitude \ aptitude-create-state-bundle \ aptitude-run-state-bundle \ ar \ as \ awk \ base64 \ basename \ bashbug \ bdftopcf \ bdftruncate 00:50:57 Gregor: mknod /dev/stdout p 15 should do it, I think. 00:51:01 `run 822-date 00:51:03 Sat, 05 Feb 2011 01:09:20 +0000 00:51:04 `ls /usr/bin | paste 00:51:04 No output. 00:51:08 `run ls /usr/bin | paste 00:51:09 `man 822-date 00:51:09 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.9602 00:51:12 No output. 00:51:46 `run ls -al /usr | paste 00:51:47 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26324 00:52:01 -!- augur has joined. 00:52:18 Please make your pathetic hackery attempts via PM 00:52:32 :V 00:53:03 `ls /dev 00:53:04 null 00:53:05 Gregor, but yeah. 00:53:13 Are you going to set up MetaBFJoust up? 00:53:18 Remove one up. 00:53:26 Wait it isn't p. 00:53:41 Lymia: Maybe over the weekend. 00:53:46 Uhh, Gregor, just make /dev/stdin :P 00:53:50 Wait. 00:53:52 `ls /proc 00:53:53 No output. 00:54:00 Gregor: Mount proc and then it's just /dev/f -> /proc/self/fd. 00:54:00 *fd 00:54:02 Symlink. 00:54:17 And then just symlink /dev/stdout to /proc/self/fd/1. 00:54:26 >_O 00:54:27 <_O 00:54:27 And stdin to /proc/self/fd/0. 00:54:31 Gregor: WHY CAN'T YOU MOUNT PROC 00:54:51 -!- augur has quit (Remote host closed the connection). 00:56:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 00:56:59 Sheesh Gregor :P 01:01:11 -!- HackEgo has quit (Remote host closed the connection). 01:01:12 -!- EgoBot has quit (Remote host closed the connection). 01:01:24 -!- EgoBot has joined. 01:01:48 -!- HackEgo has joined. 01:01:53 `ls /proc 01:01:54 1 \ 10 \ 1015 \ 1025 \ 1026 \ 1030 \ 1034 \ 1035 \ 1036 \ 104 \ 1049 \ 106 \ 1077 \ 11 \ 1114 \ 1126 \ 1127 \ 1140 \ 1141 \ 11831 \ 1185 \ 12 \ 1231 \ 1238 \ 1239 \ 1240 \ 1241 \ 1242 \ 1243 \ 1244 \ 1245 \ 1252 \ 13 \ 13095 \ 13100 \ 13101 \ 13155 \ 1338 \ 13671 \ 13672 \ 13679 \ 13680 \ 13681 \ 13682 \ 13685 \ 14 \ 1425 01:01:57 `ls /dev 01:01:58 null 01:02:02 Huh 01:02:38 xD 01:03:54 `ls /proc/1 01:03:54 attr \ auxv \ cgroup \ clear_refs \ cmdline \ coredump_filter \ cpuset \ cwd \ environ \ exe \ fd \ fdinfo \ io \ limits \ loginuid \ maps \ mem \ mountinfo \ mounts \ mountstats \ net \ numa_maps \ oom_adj \ oom_score \ pagemap \ personality \ root \ sched \ sessionid \ smaps \ stack \ stat \ statm \ status \ syscall \ task \ wchan 01:04:09 `ls /dev 01:04:10 null 01:04:12 Well. 01:04:14 Gregor: gimme root and i'll fix it 01:04:29 That's alot of processes. :V 01:04:54 Gregor, does it count processes from outside the sandbox too? 01:05:40 It's not a magical /proc, it's normal proc 01:06:37 -!- zzo38 has quit (Quit: zzo38). 01:07:22 hmm, I've forgotten what catbus did for 3 procs 01:07:27 * pikhq can has date 01:07:59 pikhq: 2010-02-05 01:08:00 you're welcome 01:08:21 pikhq: wait, don't you play Minecraft? how do you have any time in the day left to do things that aren't Minecraft? 01:09:14 elliott: "Date" in the sense of "a common human mating ritual". 01:09:24 pikhq: wait, don't you play Minecraft? how do you have any time in the day left to do things that aren't Minecraft? 01:09:28 elliott: And that's easy. I procrastinate on everything, including Minecraft. 01:09:36 pikhq: Also, dating isn't very common outside of the US. 01:09:43 (Although like all things US, it has spread somewhat to the UK.) 01:09:53 * Sgeo suddenly sees some severe similarities between the Jem'Hadar and the Jaffa 01:10:30 elliott: What the heck do you normally do for courtship rituals? Matchmaker? 01:11:45 pikhq: Well, as I said it's spread to the UK, but The Infallible Reddit Or Whatever It Was tells me that in Europe it generally goes something like "know each other -> o hai -> relationship". 01:11:46 Not that I know. 01:11:49 But hey, it's reddit. 01:11:51 It's infallible, isn't it? 01:12:11 elliott: ... Lolwut? 01:12:25 elliott: "ME LIKE YOU. RELATIONSHIP EXIST NOW?" "YES." 01:12:36 pikhq: Well, as I said, "*know each other* -> o hai -> relationship". 01:12:44 It was one person though, so it could obviously just be total bullshitting. 01:12:49 * pikhq can only conclude that European courtship was invented by cavemen. 01:13:00 But even as a UKer, the US' attitude to dating is really weird :P 01:13:20 As a USer, the typical US attitude towards it is still weird. :P 01:17:18 You shouldn't characterize all European courtship rituals as the same. 01:17:32 Finland: "Have some fish?" "Fish? Have some sex!" 01:17:41 France: "Surprise sex!" 01:18:08 Ah, yes, France is just a giant orgy. 01:18:13 I have no idea what courtship is supposed to look like 01:18:19 It's the language, I'm sure. 01:19:36 Gregor: Germany: "We shall engineer us an sex relation." 01:19:45 Yup 01:19:58 Spain: *plays chord on guitar* *sex* 01:20:53 Russia: You have someone with sex! 01:24:17 Oh man, I fucked something up :DD 01:24:41 I never say when my programs work in here. 01:24:42 I'm just all 01:24:43 oh man 01:24:44 i'm so broken 01:24:47 inside 01:24:54 -!- copumpkin has joined. 01:24:58 pikhq: ANYWAY I compiled the hg version of st and it supports multibyte perfectly. 01:25:00 Clearly elliott is incapable of making functioning programs. 01:25:03 `translateto ja Hello, world! 01:25:05 No output. 01:25:06 `translatefromto en ja Hello, world! 01:25:07 No output. 01:25:13 `translateto en jp Hello, world! 01:25:15 No output. 01:25:16 `translateto zh Hello, world! 01:25:18 No output. 01:25:21 elliott: こんにちは、世界! 01:25:21 `translatefromto en zh Hello, world! 01:25:25 No output. 01:25:28 pikhq: Ooer. What encoding was that. 01:25:33 UTF-8 01:25:42 pikhq: Does the Terminus font have UTF-8 characters? 01:25:45 `translateto ja Hello, world! 01:25:48 No output. 01:25:51 `translateto en Hello, world! 01:25:53 There was a patch to the repository recently that implemented UTF-8 support. 01:25:53 No output. 01:25:57 So it should be possible to make it work. 01:25:59 So. 01:26:08 It failed to translate from english to english? 01:26:12 pikhq: Aha. 01:26:17 pikhq: What's the environment variable for "locale yo"? 01:26:24 So I can set it to en_GB.UTF-8 or w/e :P 01:26:26 LC_ALL 01:26:35 Is it en_GB.UTF-8? 01:26:37 That's the right syntax I think. 01:26:39 -!- elliott_ has quit (Quit: leaving). 01:26:41 Yes. 01:26:50 My locale is en_US.UTF-8. 01:26:55 -!- elliott_ has joined. 01:26:57 こんにちは、世界! 01:27:08 Still showing as "$3$s$K$A$O!"@$3&!*". 01:27:21 ... That is *very* strange. 01:27:36 * elliott reads the utf-8 patch to figure it out 01:27:43 pikhq: I think that possibly my Terminus font specification is insufficiently specific. 01:27:47 -!- elliott_ has quit (Client Quit). 01:27:57 "-*-terminus-medium-*-*-*-16-*-*-*-*-*-*-*" 01:28:10 _Does_ Terminus do UTF-8? 01:28:21 Japanese in particular. 01:28:34 Terminus Font is a clean, fixed width bitmap font, designed for long (8 and more hours per day) work with computers. Version 4.32 contains 850 characters, covers about 120 language sets and supports ISO8859-1/2/5/7/9/13/15/16, Paratype-PT154/PT254, KOI8-R/U/E/F, Esperanto, many IBM, Windows and Macintosh code pages, as well as the IBM VGA, vt100 and xterm pseudographic characters. 01:28:36 Ah... 01:28:42 pikhq: Plz2be naming X11 font that does UTF-8. 01:28:49 (Monospaced) 01:29:15 elliott: That looks like valid ISO-2022-JP, BTW. Which is, uh, WTF. 01:29:22 X-D 01:29:27 Maybe irssi is fucking it up. 01:29:29 I'll try NETHACK 01:29:29 erm 01:29:31 NETCAT 01:29:48 -!- damnwalk has joined. 01:29:53 こんにちは、世界! 01:29:57 Does the same thing :P 01:30:00 -!- damnwalk has quit (Remote host closed the connection). 01:30:05 I blame Terminus. 01:32:39 pikhq: NAEM FONT 01:33:38 I DUNNO. 01:33:49 FREETYPE FONT SELECTION WORKS. 01:36:09 pikhq: ST DOESN'T SUPPORT XFT, OBVIOUSLY 01:37:42 pikhq: IT'S LIKE YOU DON'T KNOW ANYTHING ABOUT DUCKS 01:38:22 > zip [0..] [1,2,3] 01:38:23 [(0,1),(1,2),(2,3)] 01:39:50 > printStrLn "Haskell!" 01:39:51 Not in scope: `printStrLn' 01:40:01 > putStrLn "Haskell!" 01:40:02 01:40:08 Yep, Haskell. 01:40:09 :s 01:40:19 > main = printStrLn "Haskell!" 01:40:20 : parse error on input `=' 01:42:33 Lymia: It won't let you do that. 01:42:38 !haskell putStrLn "blah" 01:42:44 EgoBot does, but lambdabot is generally more useful :P 01:42:50 blah 01:42:57 So. 01:43:01 Let me get it straight. 01:43:03 `cat bin/rungcc 01:43:04 #!/usr/bin/env bash \ name=$(mktemp) \ tail -n +1 "$1" | gcc -x c -O2 -std=gnu99 /dev/stdin -o "$name" || exit $? \ shift \ "$name" "$@"; st=$? \ rm -f "$name" 2>/dev/null \ exit $? \ 01:43:14 `run sed -i 's/-O2/-w -O2/' bin/rungcc 01:43:14 No output. 01:43:19 `ls /dev 01:43:21 null 01:43:23 Gregor: When we gonna get stdout :P 01:43:25 lambdabot is too lazy to execute IO actions. 01:43:25 :( 01:43:34 Lymia: No, it just isn't stupid enough to let you do IO :P 01:43:43 :p 01:48:24 -!- augur has joined. 01:49:45 EgoBot is smart enough to *get away* with letting you do IO. 01:57:09 I wish cpressey would come back. 01:59:26 SEGFAULTS 01:59:26 OH YEAH 01:59:28 THEY'RE THE BEST 01:59:35 Meanwhile 01:59:39 quo_0: 01:59:39 ({ struct obj_quot *q = malloc(sizeof(struct obj_quot) + 0); q->tag = 0; q->next = ((void *)0); q->label = &&quo_1; q->str_len = 0; memcpy(q->str, "", 0); push_obj((struct obj_common *) q); }); eval((((struct obj_quot *)stack->top)->label)); ({ struct obj_quot *q = malloc(sizeof(struct obj_quot) + 0); q->tag = 0; q->next = ((void *)0); q->label = &&quo_1; q->str_len = 0; memcpy(q->str, "", 0); push_obj((struct obj_common *) q); }); goto *(((struc 01:59:40 t obj_quot *)stack->top)->label); 01:59:40 return; 01:59:48 pikhq: C TO RIVAL YOUR LAMBDAS 02:00:04 o.O 02:00:33 pikhq: (That's the expansion of "PUSH(1) INCLUDE PUSH(2) TAIL_INCLUDE".) 02:01:17 I'm afraid my pants have turned somewhat brown. Excuse me as I go to rectify. 02:01:59 elliott, do we have a Cbot? 02:02:07 !c printf("poop\n") 02:02:11 pikhq: Brown with APPRECIATION. 02:02:13 poop 02:02:25 !asm I'm not gonna look up syscalls at this hour 02:02:26 Does not compile. 02:02:35 !perl print "donkey\n" 02:02:39 donkey 02:02:45 !python print 'x' 02:02:53 Nope :P 02:02:58 `run python -c 'print "x"' 02:02:59 x 02:06:01 Maybe I should learn Objective-J 02:06:13 !c int a[2]; &(a+2) = 0; return; 02:06:14 Does not compile. 02:06:25 !c int main(){int a[2]; &(a+2) = 0; return 0;} 02:06:26 Does not compile. 02:06:39 !c int main(){int a[2]; *(&a+2) = 0; return 0;} 02:06:40 Does not compile. 02:06:42 :< 02:06:57 !c int a[2]; *(&a+2) = 0; return 0; 02:06:58 I like how helpful its error messages are. 02:06:58 Does not compile. 02:07:02 :< 02:07:23 !c int a[2]; 02:08:00 !c char a[2]; strcpy(a,"buffer overflow weeee"); 02:08:22 !c void a(){char a[2]; strcpy(a,"buffer overflow weeee");} a(); 02:08:23 ./interps/gcccomp/gcccomp: line 52: 7452 Segmentation fault /tmp/compiled.$$ 02:09:38 `addquote (the former is a very deep theorem, i'd have had to read the whole book to understand it, so i didn't.) 02:09:38 291) (the former is a very deep theorem, i'd have had to read the whole book to understand it, so i didn't.) 02:10:00 !c void b(){printf("Hello, world!");}void a(){int a[2]; a[3] = b;} a(); 02:10:13 !c void b(){printf("Hello, world!");} void a(){int a[2]; a[2] = b;} a(); 02:10:20 !c void b(){printf("Hello, world!");} void a(){int a[2]; a[4] = b;} a(); 02:10:21 ./interps/gcccomp/gcccomp: line 52: 7619 Segmentation fault /tmp/compiled.$$ 02:10:27 you can define an explicit main if you want 02:16:49 !c void b(){printf("Hello, world!");}void a(){int a[2]; a[4] = b;} a(); 02:16:51 ./interps/gcccomp/gcccomp: line 52: 7704 Segmentation fault /tmp/compiled.$$ 02:16:57 :s 02:20:55 Oh, durrr! 02:21:07 Hmm, I need to handle that. 02:21:37 haha it works 02:21:38 awesome 02:22:13 What works? 02:22:28 this 02:22:59 Lymia: to be precise: http://sprunge.us/XBjf 02:23:06 the beginning of unad 02:23:08 *beginnings 02:23:11 the ugly, ugly beginnings 02:23:11 Haskell? 02:23:14 And... 02:23:14 C? 02:24:45 Lymia: Yes. 02:24:51 Lymia: The big chunks of C are actually quoted. 02:25:07 Were I a sane man, I'd store them in a separate file, and use Template Haskell to read in those files at compile-time. 02:25:12 But I am not sane, so the C is embedded instead. 02:25:39 This means that I have to edit the C parts using fundamental-mode in Emacs since c-mode thinks all the 's at the end of the Haskell function names are single quotes and so treats the entire block as quoted. Quite messy. 02:26:47 If we were sane, we wouldn't have these languages around. 02:26:48 =p 02:28:28 http://catseye.tc/projects/burro/doc/burro.html More language specifications should be formally defined by being a literate Haskell program. 02:28:49 Although the "Inductive Definition of a Burro Program" section needs closer coupling of the text and the Haskell. 02:34:21 18:12:21 Maybe this esoteric language thing is more like a hobby or something? 02:34:21 18:12:53 I wouldn't write my company's production code in Piet! 02:35:00 19:17:14 Gregor: you are hereby expelled for truancy. Get out. 02:35:00 19:17:34 Ooooh, truancy. 02:36:01 hmm, maybe I'll make an executable specification for Underload 02:37:57 Gregor: What was your rebuttal to Eightebed again? 02:38:15 Writing production code in Piet? 02:38:16 Sounds nice. 02:38:21 Good way to impress your bosses. 02:44:56 grr, why is Emacs such a bad Emacs :( 02:46:21 elliott: Something along the lines of "OK, so you don't use a garbage collector because you've only put 75% of a garbage collector in it ... TECHNICALLY that fits the requirement, but it's pretty silly" 02:46:39 Gregor: There is nothing in there that collects garbage, or even notes things as being garbage. 02:46:53 Gregor: Are you saying that looping through a set of objects and flipping bits on them is "75% of a garbage collector"? :p 02:47:28 If you have a mark-and-swap garbage collector, that's about 99.9% of a garbage collector. 02:47:33 I was being generous. 02:48:01 "(Starting with the "root set" of the program's global variables, we traverse all memory blocks reachable by following valid pointers from them, looking for pointers which match the pointer about to be freed; any we find, we set their valid flags to false.) After freeing a pointer, we set its valid to false." 02:48:13 Gregor: OK, so basically you consider "traverse object space" to be 75% of a GC? 02:48:34 There really isn't very much to a GC, and for some styles of GC that's pretty much all there is. 02:48:36 Gregor: Sure, it's very similar to the _mark_ phase, but that's because the mark phase of a mark-and-sweep GC is incredibly fucking simple :P 02:48:41 It's a ... loop. 02:48:42 Mark-and-SWAP 02:48:59 In a mark and swap garbage collector, there is no sweep phase. The "sweep" phase is updating two pointers. 02:49:11 If it divided objects into generations and shit maybe I'd see your point, but I can think of 100 GC-less languages that loop through object space at points, and they don't have 75% of a GC :P 02:49:23 Gregor: Wat. 02:49:36 Best GC: Mark-and-mark. It never frees, it can just tell you statistics about how much memory it's wasting. 02:49:57 Mark-and-sweep is dead, non-shitty mark-and-whatever garbage collectors keep both free-lists and allocated-lists, then to "sweep" they just push the remaining old allocated list onto the free list. 02:50:17 Gregor: So hey, does Fythe (and thus GGGGGGGGGGC I guess) implement my (ok, not mine) incredibly simple mark-and-sweep GC design that makes GC not block the program at all? :P 02:50:35 No, it's a copying generational collector. 02:50:43 Oh yeah :P 02:50:52 I have no idea how you'd do that for a generational GC. 02:50:55 Actually I doubt it's possible. 02:50:59 THIS IS WHY MARK AND SWEEP IS AWESOME, GUYS 02:52:08 Anyway, I'm not arguing that ais didn't win the argument, in fact his language does not have a GC, but I still feel like the language that resulted has proved my point. 02:52:54 Let's play 20 questions. 02:53:00 Gregor: ...ais? 02:53:05 Errr 02:53:07 Why did I think ais X-P 02:53:09 cpressey 02:53:14 Because you hate cpressey, obviously. 02:53:26 Gregor: It proved your point as far as *practical* languages go... but, err, look at the channel you're in, dude :P 02:53:41 If we rephrase 02:53:41 A C-like language which provides a true explicit free() cannot be safe. (By "true" I mean that you can get that memory back in a later malloc().) To be safe a language must either never free (which is bad) or be GC'd. [C-like languages being] imperative languages with pointers at arbitrary data, where safety is defined as not seeing that data as a different type. 02:53:43 as 02:54:07 A C-like language which provides a true explicit free() cannot be safe. (By "true" I mean that you can get that memory back in a later malloc().) To be safe a language must either never free (which is bad) or traverse the object space as part of memory management. [C-like languages being] imperative languages with pointers at arbitrary data, where safety is defined as not seeing that data as a different type. 02:54:11 then you'd win. 02:54:30 Yup. 02:54:33 I just wasn't specific enough :P 02:54:41 BUT YOU DIDN'T, AND SO THE GLORY AND EVERLASTING FAME TO GO CPRESSEY 02:54:47 This is what history teaches us, people. 02:54:55 Luckily, it's just #esoteric glory and #esoteric everlasting fame :P 02:56:32 Gregor: No, GLOBAL. 02:56:37 Haven't you WATCHED the NEWS LATELY. 02:57:02 Now how do I make pandoc output as HTML, not xHTML. 02:57:03 *XHTML. 03:02:13 wow: 03:02:14 I am currently using an iPod Touch. When I zoom in on the snowman on your page, my device freezes and causes other glitches afterward. Was this meant to happen, or is it a problem on my side?--72.18.49.91 02:46, 4 February 2011 (UTC) 03:02:21 MY SNOWMAN CRASHES PEOPLE 03:23:36 elliott: wtf? 03:23:45 Gregor: Yeah X-D 03:23:51 Context? 03:23:54 Gregor: If you don't understand, see http://esolangs.org/wiki/User:Ehird 03:24:06 (And click "edit" to see the vomit.) 03:24:16 GOD DAMN IT MY BROWSER JUST CRASHED 03:24:28 Gregor: ...Seriously? 03:24:36 No :P 03:26:17 D'awwwww 03:26:33 Android doesn't crash or go crazy-slow or anything, but it doesn't have the snowman glyph so it's just a box on a gradient :( 03:27:00 Gregor: LAME 03:27:51 I don't think Pandoc will be able to understand this Literate Haskell. 03:28:14 -!- copumpkin has quit (Ping timeout: 265 seconds). 03:28:31 INDEED 03:28:40 -!- copumpkin has joined. 03:30:26 elliott: I think it's time for "Number of 'of the day's of the day (of the day)" 03:30:32 Gregor: X-D 03:31:29 Ugh, getting text and a literate program to appear in table cells next to each other is... nearly impossible. 03:31:38 (Yes, I do want to match up my English text and code!) 03:32:55 Why are we writing literate programs? 03:33:05 Write literate Brainfuck. 03:33:05 Lymia: Executable Underload specification. 03:41:39 13:41:28 AnMaster: you start as Yoshi, obviously 03:41:39 [...] 03:41:39 13:42:03 if it was a straight port, it wouldn't have sold as well as a port with some extra levels 03:41:39 13:42:07 scarf, s/enhanced/totally wrecked/ 03:41:46 STARTING WITH A DIFFERENT CHARACTER = RUINED FOREVER 03:42:55 Nobody likes Yoshi. 03:43:08 Yoshi is into trannies, and that's totally not cool 03:43:12 -!- Tabarnaco has joined. 03:44:01 hey guys how about that z80 assembly~~~~~~ 03:44:46 We're against technology in this channel. We believe that the only True Assembly is the Assembly of the Earth. 03:45:07 :( 03:45:16 imo it's pretty close 03:45:41 However, the lambda calculus is entirely acceptable. 03:47:51 -!- azaq231 has joined. 03:48:05 -!- azaq231 has quit (Changing host). 03:48:05 -!- azaq231 has joined. 03:48:53 Tabarnaco: hi 03:49:02 Gregor is just some homeless guy who won't go away, disregard him 03:49:16 Homeless? 03:49:24 My home is the Sky. 03:49:28 Of Life. 03:49:34 My home is The Earth. 03:49:39 My home is Nature. 03:49:43 * Gregor humms 03:49:48 Tabarnaco: Isn't Z80 relatively *non*-esoteric as CPU architectures go? :) 03:49:59 !fyb i-love-you [@+++++++++++++++!] 03:50:02 as far as i know there's no assembly or z80 channel 03:50:09 -!- azaq23 has quit (Ping timeout: 240 seconds). 03:50:18 If this dosn't get a 0. 03:50:20 Something is wrong. 03:50:21 Score for Lymia_i-love-you: 4.9 03:50:24 ... 03:50:27 There's almost certainly some kind of assembly channel; Z80 maybe not on freenode but definitely elsewhere. 03:50:30 But hi. 03:50:47 well i checked z80 and it doesn't exist so i don't want to browse through the list of channels 03:50:54 Gregor. 03:50:58 Why is my program winning. 03:50:59 either way i think i forgot my calculator somewhere 03:51:09 so i can't get my rom onto the computer to debug 03:51:25 Lymia: Some programs will kill themselves if left unchallenged. 03:51:43 Gregor, this program kills itself. 03:51:50 That's what it's meant to do. 03:51:53 Lymia: Not if it stops you first. 03:52:05 !fyb i-love-you :@+[...............................................................................................................]*;[@+++++++++++++++!] 03:52:07 Score for Lymia_i-love-you: 5.1 03:52:10 / 03:52:12 ... 03:53:10 * azaq231 considers the sort-of trolling halfway commenced 03:53:31 azaq231: wait what 03:53:39 who are you, anyway? 03:53:46 azaq231: Amazing how you've accomplished that without saying anything :P 03:54:15 I sent the assembly guy here 03:54:21 OH WE'RE SO TROLLED 03:54:29 Tabarnaco: This channel is about esoteric programming languages, btw :P 03:54:32 azaq231: What did you tell him X-D 03:54:37 NO SHIT 03:54:47 assembly is pretty esoteric nowadays 03:55:02 and if i can't find an answer to my question on google it has to be esoteric 03:56:06 w 03:56:08 *no w 03:56:23 Tabarnaco: well I don't know Z80, so I'm going back to my Haskell :P 03:56:35 see 03:56:36 esoteric 03:56:49 Everybody has to start low, using appropriate opportunities, I guess. Actually this was the first place in which the question didn't seem so offtopic and which contains people who might know the answer that popped into my head 03:56:51 Har har har har har 03:57:09 azaq231: I just hope you realise that the punishment for bringing people here is death by fire. 03:58:01 don't worry i don't give a fuck about you so there's no way i'm staying here longer than necessary to obtain an answer, regardless of the method employed for it 03:58:27 Wow, you sound like a really nice, happy chum. 03:59:41 thx 04:00:08 niwanoniwanihaniwanoniwatorihaniwakaniwaniwotahèta. 04:00:17 Tabarnaco: You realise nobody in here knows the answer to your question. Also you haven't told us what it is. 04:00:40 well since nobody seems to know z80 assembly in the first place i don't see the point of it... 04:00:52 it's just data overlap 04:01:48 it's ok though i realise that you're too stupid to know how to fix it so i'll check somewhere else 04:02:04 azaq231: lol where did this guy come from, efnet? 04:02:13 you're so trollable 04:02:20 where are you from 04:02:22 furnet? 04:02:40 Tabarnaco: I'm afraid þou art ſtupid. 04:03:08 "trollable"? 04:03:18 don't i have to get angry or at least annoyed for that? 04:03:28 elliott: #Reddit 04:04:05 azaq231: psht, you bring this guy in here on my reddit birthday! :-p 04:04:12 * elliott wears party hat 04:04:41 no, you shouldn't get angry or annoyed 04:04:46 you should surpass my trolling 04:04:47 with your own 04:05:23 Vorpal: what's the befunge terminology for "second element of stack again"? 04:17:44 -!- poiuy_qwert has joined. 04:24:37 -!- azaq23 has joined. 04:26:01 -!- azaq231 has quit (Ping timeout: 240 seconds). 04:29:58 TODO: swap the arguments of this to take the program first ... 04:31:32 * Lymia hugs elliott <3 04:31:50 YOU ARE DOING THAT TOO MUCH 04:31:57 I hug everybody 04:31:58 Alot. 04:32:00 No matter who they are. 04:32:01 Clearly. 04:32:03 Or where they are. 04:32:06 * Lymia hugs Tabarnaco <3 04:32:07 See. 04:32:11 But he's filthy. 04:33:02 at least i don't get trolled by some random asshole who joins the channel 04:33:20 what is it with people these days and not knowing what trolling means 04:33:26 OR WAS THAT TEH TROLL 04:33:32 sorry *trolle 04:34:10 i agree, you don't see to get the definition 04:34:14 * quintopia hugs Lymia 04:34:21 get a room 04:34:22 people who hug are cool 04:34:23 maybe you should check wikipedia, but maybe it's not esoteric enough for you... 04:34:27 * Lymia hugs quintopia <3 <3 04:34:30 seem not see 04:34:51 Haha... http://inetcore.com/project/ipv4ec/images/ipv4ec_iana_en.png 04:35:04 time to create esoteropedia, with all sorts of esoteric definitions for ordinary words 04:35:59 that's called urbandictionary.com 04:36:20 urbandic is accurate enough 04:36:36 no it's not 04:36:59 * quintopia unhugs lymia 04:37:03 Ilari: Time to start the IPv6 exhaustion counter. 04:38:21 Predicting next IANA IPv6 allocation would be easier... :-) 04:38:23 Gregor: goal: set up a box and a network so reliable it will still be running the day IPv6 runs dry :P 04:38:30 I'm still a little bit suprised that I was asked who I am in some freenode irc channel while #haskell-blah shortly talked about the familiarity with my person 04:38:42 (last was in 2006). 04:39:35 IIRC, the most depleted RIR is at 6% of a block used... 04:39:51 azaq23: I can't parse that 04:39:55 well, the bit after "while" 04:40:03 Ilari: Spoken like a non-statistician. You can ALWAYS estimate. 04:40:22 ALWAYS 04:41:03 -!- Lymia_ has joined. 04:41:17 estimate the day I snap and injure elliott 04:41:26 -!- Lymia has quit (Disconnected by services). 04:41:28 -!- Lymia_ has changed nick to Lymia. 04:41:36 -!- Lymia has quit (Changing host). 04:41:36 -!- Lymia has joined. 04:43:18 elliott: copumpkin and tswett briefly mentioned that they are not familiar with me. I didn't know that I have to get a member card for certain channels. 04:43:29 you don't 04:43:44 azaq23: hmm, but they're all #esotericers! 04:43:45 :p 04:44:10 Pfff 04:44:18 copumpkin is too new to be a TRUE #esotericer. 04:44:48 He hasn't yet experience The Ritual. 04:45:54 Yes. 04:45:59 He has not yet been subjected to... The Raping. 04:46:01 Of the Soul. 04:46:13 LACNIC: 4 322 885 928 /48s used out of total of 68 753 031 168 (6.3% depletion). 04:46:45 That is ipv6? 04:46:53 Ilari: And when was the first allocation? 04:47:11 Lymia: That's of only a particular allocation OF IPv6. 04:47:19 I know. 04:47:40 4 billion /48s... nice :P 04:48:04 -!- elliott has set topic: Tetris hermeneutics | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 04:49:15 Yes. But there's one huge allocation (apparently to NIR of Brazil). Discounting that (as that would get futher allocated), there are 27 918 632 other /48s. 04:49:42 GOD DAMMIT BRAZIL 04:49:44 WHY YOU GOTTA BE LIKE THAT 04:50:40 BTW: The IPv6 allocations of entiere world would be about /14.84 04:50:48 So /16 is fscking huge. 04:52:44 Ilari: Is that /16 relative to the currently allowed unicast blocks? 04:52:58 Relative to whole IPv6 address space. 04:53:54 Assuming advertisment ratio on order of 20%, the number of /48s actually allocated to end users from that block is on order of 25 000 000. 04:54:15 Oops, 12.5M, not 25M. 04:54:37 So that block is maybe 1% used... 04:54:38 Ilari: You didn't answer, when was the first allocation in this block? 04:54:50 On what block? 04:55:12 LACNIC, the oh-so-6.3-percent-depleted one we've been talking about. 04:56:17 Seems like first allocations were in 2003. 04:56:57 And how big is it? A /16? 04:57:16 The huge /16 was allocated in 2008... 04:58:04 I suppose Brazil wanted to never run out ever. 04:58:06 WHAT WAS THE FIRST IPv6 ALLOCATION _EVER_ 04:59:07 elliott, the reserved private IPs? 04:59:12 THAT'S NOT AN ALLOCATION 04:59:24 it was to RIPE 04:59:32 Assuming 1% usage of that huge block (and that seems high), the real depletion percentage would be 0.10% 04:59:46 elliott: The first IPv6 allocation would be 2000::/3, to IANA. :P 04:59:54 WHEN WAS THAT 05:00:06 pikhq, you sure? I thought RIPE got the first allocation? 05:00:09 elliott, STOP SHOUTING 05:00:12 NO 05:00:12 I AM 05:00:13 TOO 05:00:14 SERIOUS 05:00:15 NOT TO SHOUT 05:00:18 variable: I'm being silly. 05:00:20 Also he is SPARTA 05:00:28 Gregor: ONLY SOMEWHAT SPART 05:00:29 *SPARTA 05:00:37 pikhq, I'm dead tired right now - so I'm not thinking) 05:00:45 elliott: I forget what that's from :P 05:01:01 Gregor: Chrome build system thing. 05:01:08 Ohyeah 8-D 05:01:33 This was apparently the first IPv6 allocation from RIR: arin|US|ipv6|2001:0400::|32|19990803|allocated ... 3rd August 1999. 05:01:43 elliott, http://www.sixxs.net/tools/grh/dfp/ -> random stats - I'm sure you you could find it somewhere there? 05:01:48 Ilari, link? 05:01:55 Ilari: Did allocations become "standard" after that or was that just an "initial" thing with a delay before actual allocations? 05:02:03 I'm curious as to when IPv6 started actually "existing". 05:02:06 "" 05:02:11 elliott, allocations are requested 05:02:11 variable: Ew, SixXS. :) 05:02:14 variable: I know that. 05:02:26 I just mean that e.g. imagine if some initial allocations were made right when IPv6 was being finalised. 05:02:27 elliott, erm - I'm dead tired to do too much thinking :-\ 05:02:36 It could be quite a while before more allocations came in after that. 05:02:41 Because of infrastructure being deployed and whatnot. 05:02:47 and no - the initial IPv6 was finalized way before it was allocated 05:02:51 Right. 05:03:01 but lots of related protocalls were finalized after allocation started 05:03:12 http://en.wikipedia.org/wiki/World_IPv6_Day Oh man, this is gonna be so disapointing :P 05:03:15 *disappointing 05:03:24 elliott, its just a test day - nothing major will occur 05:03:38 variable: Yeah, and the result will be that absolutely frickin' no-one can access the sites via IPv6 :P 05:03:46 IPv6 RIR system was apparently created 1st July 1999. Also, 1999 was the year IPv6 was considered production-ready. 05:04:03 1999... and here we are, 12 years later. 05:04:03 google found that 1% of requests failed with IPv6 enabled even if there were using an IPv4 only stack. This is just a similar test on a larger scale 05:04:09 Shit still ain't workin'. 05:04:25 they don't care if people use IPv6 really 05:04:36 or - not much 05:04:56 (I'm on the IPv6-ops; dns-ops; NANOG lists btw) 05:04:57 -!- pikhq has quit (Ping timeout: 240 seconds). 05:05:00 -!- pikhq_ has joined. 05:05:10 Looks like 6bone started at the same time that Linux got alpha IPv6 support, 1996. 05:05:11 BTW: I have seen interesting IPv6 failure modes... Including ones leading to WSOD with NO fallback. 05:05:54 lol: http://lists.cluenet.de/pipermail/ipv6-ops/2011-February/004807.html 05:06:13 Nice event. No IPv6 on the streaming servers. FAIL. --> lulz 05:06:31 But hey, that's all right. 05:06:35 -!- pikhq_ has changed nick to pikhq. 05:06:36 After all, we're all switching to IPv8, right? 05:06:37 http://www.ietf.org/mail-archive/web/ietf/current/msg23021.html 05:06:49 Ilari, MS Windows is not supported on a IPv4 only stack :-) 05:06:55 You only get fallback if the connection fails to establish. If the connection establishes and things go wrong after that... 05:06:56 More crazy: http://mailman.apnic.net/mailing-lists/apnic-talk/archive/1998/02/msg00030.html 05:07:05 More crazy: http://www.icann.org/en/comments-mail/comment-aso/msg00010.html 05:07:12 More crazy: http://www.ietf.org/mail-archive/web/ietf/current/msg09777.html 05:07:15 Ilari, exactly. That is why the IPV6 test day is occuring 05:07:23 EXCUSE ME I AM LINKING YOU CRAZY APPRECIATE 05:07:28 :p 05:07:47 elliott, I've already read those :-) 05:07:56 Yeah, but that's because you're LAME or something. 05:07:58 variable: And that may happen *after* the first RIR depletion. 05:08:02 Which is so very fail. 05:08:02 variable: But have you read http://thehiawathatriad.org/home/?page_id=1780? 05:08:08 If Web 4.0 containing terminals of IPv7 is to prove a reliable and generally accessible tool to traverse the mirror boundary, it should “boot up”. In addition, if interpretation of impressions recited in this website are to be used, they must not only be relevant, but also be elements of a coherent or bridged reality. In this context, it might be useful to review early work in Phase II for possible experimental refinement. For the sake of a 05:08:09 rgument, we will use one Phase II statement (pg. 13) and another from Schrodinger’s virus: 05:08:09 From Phase II: “… is a potency whose actuality or form of realization is determined by the circumstances of the situation defining its purpose. For the sake of the text, it can be considered a platform of convenience in an abstract substratum of attributes rendering it otherwise uninhabitable. (page 9) ” and from Schrodinger’s virus; “A sense of a capability to, at any given moment, validate history of conversations and opinion verbaliz 05:08:10 elliott, because I care a lot about internet internals 05:08:13 ed, written, or thought.” 05:08:50 Oh, there is network protocol with IP version id of 7. 05:08:50 pikhq, there won't ever really be a 0 point for the RIRs AFIK because of the reallocation policies. But the reserves will get too low to provide most requests (ie <100 addresses) 05:09:12 Can you allocate a single address in IPv4? :D 05:09:19 elliott, no 05:09:31 AWW 05:09:45 That's a /4294967295 isn't it? 05:09:56 Or, no... 05:10:00 /31? 05:10:01 variable: "RIR depletion" here means that they're not capable of assigning outside of the reserved space. 05:10:02 elliott, its a /32 05:10:05 hehe 05:10:05 sorry /31 05:10:08 right 05:10:14 (it is easy to guess what IP version ids of IPv4 and IPv6 are). 05:10:25 pikhq, yes. I understand 05:10:33 Ilari, 42 and 5? 05:10:39 (in that order) 05:11:15 Earlier summary of packet exchange (dumped from A): A: SYN, B: SYN+ACK, A: ACK. A: Data 1-415. A: Data 1-415. B: ACK up to 415. B: Data 1209-1614. A: SACK 1,1209-1614. B: FIN+ACK. A: SACK 1,1209-1615. B: ACK up to 415. . 05:11:23 Amazing how the development of IPv6 started in 1994... if you went back and time and asked them if they thought their protocol would stay largely unimplemented for 17 years, whaddya think they'd say? 05:11:30 17 years! 05:11:31 elliott, "yes" 05:11:37 elliott: "Fuck you!" 05:11:48 maybe not 17 -- but at least 15 05:11:51 Mm. 05:11:56 ... Good God. If IPv6 adoption started in 1994, this would *never* have been a problem. 05:12:06 pikhq: Impossible. 05:12:10 The RFCs were only first published in 1996. 05:12:12 And finalised in 1998. 05:12:18 elliott: I can dream, right? 05:12:19 * variable is away 05:12:26 A few years ago I thought IPv6 supporters were a bit silly... it's hard to see depletion coming when you're so close to it or something. 05:13:01 * elliott loads kame.net, notes lack of dancing. 05:13:14 "If you migrate to IPv6 HTTP, you'll be able to view the NON-MOSAIC DANCING KAME!" 05:13:15 * pikhq loads kame.net, notes the dancing 05:13:27 pikhq: You're cheating, with a tunnel. 05:13:40 elliott: It's the closest I can get with US ISPs. 05:13:42 Or if IPv6 migration comitees would have started as early as Telestra's Y2K comitee... 05:13:48 I could go to http://tunnelbroker.net/ right now and get me a nice IPv6 tunnel. But will I? No. 05:13:52 I still build applications (like curl) with IPv6 off :-) 05:13:55 Instead I'll switch to http://www.bogons.net/. Native IPv6! :p 05:14:04 Well, if we went to Comcrap, I could at least get IPv6... 05:14:05 OK, so they might actually just do IPv6 with a tunnel. 05:14:17 Because NOBODY in the UK has the infrastructure for IPv6. 05:14:33 Hmm. 05:14:34 http://www.bogons.net/network.shtml 05:14:43 Someone more knowledgeable than me tell me what that implies about Bogons. :p 05:14:52 "Our network is fully multicast and IPv6 enabled, ensuring that we stay at the fore-front of Internet Protocol futures. 05:14:53 " 05:14:56 I guess it might be native then. 05:14:57 *futures." 05:16:34 Bogons' prices aren't so nice though... their normal ADSL is cheap enough, and although their cheapest 20Mbps download plan is the same monthly price, it comes with a 200 gig usage limit (it's business service)... 05:16:41 Although that's LLU, so I don't even know if it's available here. 05:16:48 "IPv7" is TP/IX. 05:17:26 BE is a lot cheaper, but don't offer IPv6 afaik. 05:17:50 In August 2009 the UK ISP Andrews & Arnold entered into an agreement to use BE's core and LLU networks to augment BT's legacy 20CN and 21CN infrastructure.[8] 05:17:57 I love how 21CN = 21st Century Network is OBSOLETE BY DESIGN. 05:18:20 Started off 2005, 2006... BT hopes to transfer 50% of customers by 2008, AND 05:18:24 NO SUPPORT FOR IPV6 WHATSOEVER. 05:18:29 *Obsolete by design.* 05:18:32 Ilari will now facepalm. 05:18:52 Sorry: Approved in 2003. 05:18:58 Going to be fun watching them scramble. 05:19:14 pikhq: Yeah... that's why "In August 2009 the UK ISP Andrews & Arnold entered into an agreement to use BE's core and LLU networks to augment BT's legacy 20CN and 21CN infrastructure.[8]" 05:19:17 IP version IDs 5, 7, 8 and 9 would likely be good candidates to recycle the identifiers (should more of those be needed)... 05:19:20 Local loop unbundling is VERY common in the UK. 05:19:25 See WP's LLU page for stats. 05:19:39 Ilari: how many valid versions are there? 05:20:10 AFAIK, only 2 have been seen in the wild (4 and 6)... 05:20:27 And the field is 4 bits (16 values) 05:20:47 Total allocations: 6 05:21:13 Ilari: What, exactly, are 7, 8, and 9 used for? 05:21:57 Those _were_ used for prototyping other IPng candidates. 05:22:17 the one that used 6 was destined to win :D 05:22:18 bye 05:22:19 -!- elliott has quit (Quit: Leaving). 05:22:47 Huh. 2 and 3 are unassigned. 05:22:59 * pikhq found the registry. 05:23:59 Yeah, seems to me that 7-9 should be recycled. 05:24:38 The other IPng candidates suck. 05:31:46 Is that IPv7 stuff from Markov generator or ramblings of some crackpot? 05:35:42 -!- pikhq has quit (Ping timeout: 240 seconds). 05:35:57 -!- pikhq has joined. 05:38:25 * pikhq doesn't understand people some times 05:45:21 -!- pikhq has quit (Ping timeout: 240 seconds). 05:45:28 -!- pikhq has joined. 05:46:54 -!- oerjan has joined. 05:49:55 pikhq: Det er jo et helt vanlig problem. 05:51:47 oerjan: I don't understand that nonsense. 05:52:01 * oerjan whistles innocently. 05:52:03 I will instead respond by noting that beer is delicious. 05:52:28 -!- taotree has joined. 05:52:30 Indeed! 05:53:42 -!- Tabarnaco has left (?). 05:55:37 * Lymia pokes Gregor 05:55:52 How is (a{b}c{d}e)*3 treated in BF Joust 05:55:55 aaabcccdeee? 05:56:37 i don't think that's technically legal syntax 06:33:00 -!- hagb4rd has joined. 06:33:14 morgen! 06:33:58 morn! 06:40:47 That music that I thought came from Hikaru no Go and that I thought I misremembered as being from elsewhere --- I just remember where I originally heard it, it is a distinct song 06:41:04 ^^may not be correctly parsable 06:41:38 Am I turning into zzo38? 06:41:42 -!- maximum_yellow has quit (Ping timeout: 264 seconds). 06:43:05 * oerjan parses it just fine 06:44:05 -!- Zuu_ has joined. 06:44:27 -!- Zuu has quit (Read error: Connection reset by peer). 06:44:39 -!- oerjan has quit (Quit: Reboot). 06:48:04 -!- oerjan has joined. 06:56:14 -!- Lymia_ has joined. 06:59:15 -!- Lymia has quit (Ping timeout: 240 seconds). 07:07:54 hmph checking on the command line, 56657856797822194249 is apparently too large for the factor program. 07:08:14 ...but i just need to check for primeness :( 07:09:40 ...that online prime checker cuts off the number during input... 07:10:51 -!- hagb4rd has quit (Ping timeout: 240 seconds). 07:11:00 thank you, wolfram alpha :) 07:14:14 and it _was_ prime, only two candidate lines left... 07:14:40 hm winghci conveniently keeps history from last session 07:21:04 -!- asiekierka has joined. 07:23:22 -!- Lymia_ has changed nick to Lymia. 07:23:23 -!- Lymia has quit (Changing host). 07:23:23 -!- Lymia has joined. 07:54:01 -!- TLUL has changed nick to TLUL|afk. 07:56:09 oh wtf i _missed_ 111 as an octal prime... 07:56:31 that's going to simplify a bit 07:58:57 Ilari: sheesh half my list for base 8 disappeared because i'd missed that... :D 07:59:25 oerjan, what are you looking for? 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:34 the set of primes in octal which have no other prime as a non-consecutive substring 08:03:48 -!- hagb4rd has joined. 08:04:18 Ilari: ok what i have now, modulo remaining errors: base 8: 2, 3, 5, 7, 111 (73), 141 (97), 161 (113), 401 (257), 661 (433), 4611 (2441), 6101 (3137), 6441 (3361), 60411 (24841), 444641 (149921), 444444441 (76695841), possibly some 8^(4k)+1 (k > 100). 08:05:14 er, 08:05:24 *er, *k > 25 08:07:54 -!- hiato has joined. 08:08:43 hm wolfram alpha says sum(1/log(8^(4k)+1)) diverges. i _think_ that means by the prime number theorem such a prime is likely to exist. 08:09:25 oh wait. 08:11:07 -!- hiato has quit (Client Quit). 08:11:17 -!- hiato has joined. 08:11:39 it _doesn't_ exist, by what http://en.wikipedia.org/wiki/Fermat_number says. 08:11:56 (it's 2^(12k)+1), and 12k is not a power of 2.) 08:18:43 that fact + the missing 111 means i didn't need most of the huge numbers i checked... 08:21:03 -!- hiato has changed nick to maximum_yellow. 08:25:00 -!- iamcal has joined. 08:27:16 -!- cal153 has quit (Ping timeout: 250 seconds). 08:29:07 -!- hagb4rd has quit (Ping timeout: 240 seconds). 08:37:29 -!- hagb4rd has joined. 08:50:54 -!- Lymia_ has joined. 08:51:28 -!- Lymia has quit (Disconnected by services). 08:51:29 -!- Lymia_ has changed nick to Lymia. 08:51:30 -!- Lymia has quit (Changing host). 08:51:30 -!- Lymia has joined. 09:15:11 -!- hagb4rd has quit (Ping timeout: 240 seconds). 09:19:50 -!- kar8nga has joined. 09:32:39 -!- MigoMipo has joined. 09:39:00 -!- FireFly has joined. 10:22:57 -!- hagb4rd has joined. 10:30:03 -!- FireFly has quit (Quit: swatted to death). 10:41:03 -!- hagb4rd has quit (Ping timeout: 240 seconds). 10:43:18 Latest unallocated file has 441 663 944 IPv4 addresses free. 381 895 112 after substracting reserved space. 10:47:25 APNIC latest data has 3.13 blocks (unallocated file says 54 807 808, which is 3.27 blocks) 10:50:03 APNIC extended stats file says 69 149 184 (52 371 968, 3.122 blocks after substracting reserved space). 10:50:04 -!- hagb4rd has joined. 10:51:57 Haha... This IPv4 exhaustion widget is clearly confused. Giving X-day (first RIR depletion now) in 2022... 10:53:47 -!- azaq23 has quit (Quit: Leaving.). 10:57:29 APNIC available blocks in extended file: 900x/24, 179x/23, 190x/22, 194x/21, 129x/20, 107x/19, 57x/18, 41x/17, 13x/16, 12x/15, 13x/14, 6x/13, 5x/12 and 3x/8. 11:00:32 The 3x/8 are the newly allocated blocks. Other than that, they had fragmented the space down to at most 1Mi address blocks... 11:04:44 -!- Lymia_ has joined. 11:07:39 -!- Cheery has joined. 11:07:55 -!- Lymia has quit (Ping timeout: 240 seconds). 11:19:01 -!- maximum_yellow has quit (Ping timeout: 272 seconds). 11:19:31 -!- cheater00 has quit (Ping timeout: 240 seconds). 11:20:21 -!- cheater00 has joined. 11:20:24 -!- maximum_yellow has joined. 11:20:43 -!- hagb4rd has quit (Ping timeout: 240 seconds). 11:33:10 -!- Zuu_ has changed nick to Zuu. 11:46:12 -!- Cheery has quit (Quit: Lost terminal). 11:53:26 -!- hagb4rd has joined. 11:57:38 -!- TLUL|afk has quit (Ping timeout: 245 seconds). 12:03:44 Hmm... What about splitting Keränen sequence so kth word is k symbols long... 12:05:06 That sequence has base of 'abcacdcbcdcadcdbdabacabadbabcbdbcbacbcdcacbabdabacadcbcdcacdbcbacbcdcacdcbdcdadbdcbca' under Z_4 mapped by 0 <-> a, 1 <-> b, 2 <-> c, 3 <-> d. 12:07:08 Which gives a, bc, acd, cbcd, cadcd, bdabac, abadbab, cbdbcba, cbcdcacb, abdabacad, cbcdcacdbc, bacbcdcacdc, bdcdadbdcbca, bcdbdadcdadba, ... 12:08:30 Those 13 first terms yield substrings: 'a' and 'bc' 12:11:52 And that's all, since no minimal substrings of length 5 or greater can exist. 12:13:11 For base 9: "2, 3, 5, 7, 14, 18, 41, 81, 601, 661, 1011, 1101, ... 12:13:39 darn there doesn't seem to be _any_ of length 5 or 6, making it blow up a lot 12:14:35 and it started so nicely by getting rid of the 4's and 8's 12:15:33 Far more difficult question: For set of strings over k symbols, what is the maximum size of minimal subset of substrings? Is it finite? Or is it unbounded? Finite for small bases but unbounded for large? 12:16:14 huh i'd been assuming it was infinite 12:16:21 but when you mention it... 12:16:30 Yeah, probably infinite. 12:16:36 (unbounded that is) 12:17:45 Actually, it is unbounded in any base: Consider the set that contains all binary strings at least k bits long. The size of set is 2^k which is unbounded as k increases. 12:18:00 ...of course it is. just take _all_ strings of length n for any base. this ... right 12:18:47 With 1 symbol, the size of minimal substring subset is always 0 (empty set) or 1 (for any non-empty set). 12:19:02 2 or more symbols, it is unbounded. 12:24:44 AnMaster, Gregor, aloril, are we some kind of international conspiracy now? <-- what were you two doing over there. 12:44:54 -!- NiFkE has joined. 12:47:26 hello NiFkE.. feel comfortable not to fear to ask yoûr unholy questions on that dark matter 12:47:51 here 12:48:03 -!- rendy has joined. 12:48:19 -!- nddrylliog has joined. 12:48:46 about the tool or about parsing? :p 12:49:25 jhfdhjhjhf 12:50:13 ask, they'll soon make you whish not to been thrown into this hell ;) 12:50:37 * hagb4rd needs to do some shopping now 12:50:40 cu later 12:50:50 -!- hagb4rd has changed nick to hagb4rd|afk. 12:50:52 -!- nddrylliog has quit (Client Quit). 12:50:53 :@ 12:51:05 -!- nddrylliog1 has joined. 12:51:08 [13:41] does anyknow know a tool that could do this: let's say I have 2GB of memory. I open the tool and tell it: "hey, make sure my ram never drops below 1.66GB." 12:51:08 [13:41] so filling my ram with dummy shit 12:51:08 [13:42] memtest86 3.0 or 2.0 had this but I'm not sure 12:51:12 [13:42] because I need to simulate something which only occurs between ram usage x and y. 12:51:43 -!- nddrylliog1 has changed nick to nddrylliog. 12:53:11 -!- rendy has left (?). 13:05:41 -!- NiFkE has left (?). 13:26:16 -!- sftp has quit (Remote host closed the connection). 13:28:30 -!- sftp has joined. 13:46:59 -!- Phantom_Hoover has joined. 13:47:00 -!- Phantom_Hoover has quit (Client Quit). 13:47:21 -!- Phantom_Hoover has joined. 14:15:11 -!- impomatic has joined. 14:15:13 Hi :-) 14:15:53 ohai 14:29:33 -!- hagb4rd|afk has quit (Ping timeout: 272 seconds). 14:34:42 There exist people who think C is a good first language. 14:34:44 I despair. 14:36:02 Phantom_Hoover, depends on your goal. Good first language for the lower layers of an OS perhaps? Though I would suspect it should be asm instead. 14:36:11 but *not* for learning 14:36:21 That's what I meant. 14:43:07 Phantom_Hoover, this versioning scheme was insane: http://df.magmawiki.com/index.php/40d:Version_number 14:43:13 good thing it changed 14:46:42 So what is a good first language? BASIC, Pascal, Logo? 14:46:58 impomatic, scheme maybe 14:47:29 Underload 14:47:45 -!- oerjan has quit (Quit: VERY GOOD). 14:48:03 nddrylliog, what was the one elliott mentioned... OCC? 14:48:21 Vorpal: is that a troll attempt? 14:48:23 haven't looked at it 14:48:27 nddrylliog, no idea :) 14:48:34 Don't let newbie programmers near Underload. 14:48:46 hey, Underload is a very nice first language 14:48:48 anyway scheme is a good early and/or first language 14:48:49 or maybe Befunge 14:48:57 nddrylliog, yes in esolangs 14:49:02 hell, I'll teach Befunge to my children as soon as they can hold a pencil 14:49:04 I think they meant more generally 14:49:12 I meant more generally as well 14:49:17 ouch 14:49:33 oh right, OOC that was it 14:49:36 nddrylliog, so what is wrong with that OOC? 14:49:55 I like Underload. I hate the though of newbie programming using it to write ugly newbie code :-P 14:49:56 you know we used to have a bot on the channel that screamed "It's "ooc", not "OOC", you dumbnut!" 14:50:11 nddrylliog, I wasn't aware of the case. 14:50:11 if someone does that to #esoteric I will fill his/her house with candy 14:50:29 How about Ruby or Python for a first language? 14:50:38 nddrylliog, so okay, what is wrong with the ooc language that made you talk about trolling? 14:51:01 nddrylliog, also I don't really care about case on irc. after all you don't start your sentences with upper case letter either 14:51:29 impomatic, I feel scheme or similar is a good first one. Python if you *have* to use imperative 14:51:31 Vorpal: the compiler could use some love (bug-fixing), some corners of the language I regret ever implementing (double use for 'cover', implicit as, pointers...) 14:51:40 Vorpal: also I don't care about case that much except for names 14:53:02 nddrylliog, anyway such a bot as the one you mentioned have to be very smart since OOC in upper case has other meanings as far as a quick googling suggests 14:54:07 I'd suppose that when someone says "OOC" in #ooc-lang it's not that he/she is breaking the rules of role-playing, but rather than he/she is talking about the language. 14:56:22 nddrylliog, indeed but in here it could be either 14:56:28 right 14:56:46 nddrylliog, is it a pure language? 14:57:17 nope 14:57:42 in fact, I'm really tired of speaking about it - which I've mentioned multiple times, so I guess the better option is just to try it :) 14:58:20 nddrylliog, mhm 14:58:33 -!- Lymia__ has joined. 15:01:24 -!- Lymia_ has quit (Ping timeout: 240 seconds). 15:01:42 Vorpal: sorry for that 15:13:02 nddrylliog, for what? 15:13:15 Vorpal: for not being really helpful 15:13:20 ah 15:13:23 *shurg* 15:13:27 shrug* 15:13:48 -!- Mathnerd314 has quit (Ping timeout: 240 seconds). 15:25:51 nddrylliog, can you explain how fe2 is supposed to work? 15:26:25 Phantom_Hoover: fe2's dead already, you want to have a look at its successor http://esolangs.org/wiki/Crowbar 15:26:38 Phantom_Hoover: pretty poorly explained, but you're an esolanguist, you should be able to make some sense out of it 15:27:58 Is it case-sensitive? 15:28:08 Phantom_Hoover: yup 15:28:14 func != Func 15:28:21 Func's the type, func's the keyword to define a function 15:29:51 So how does the "rule \A" bit work? 15:31:37 ah right I should've added that to the wiki 15:31:38 hang on 15:34:00 http://esolangs.org/w/index.php?title=Crowbar&diff=20951&oldid=20949 15:34:03 Phantom_Hoover: ^ done 15:35:12 -!- pikhq_ has joined. 15:35:17 -!- pikhq has quit (Ping timeout: 255 seconds). 15:43:55 -!- nddrylliog has quit (Ping timeout: 255 seconds). 15:44:20 -!- kar8nga has quit (Remote host closed the connection). 16:12:59 impomatic --> python for a good first language 16:13:21 :-) 16:15:24 after you've reached guido's level you can only go up... yep, a good start 16:16:33 -!- FireFly has joined. 16:17:45 anyone know a good tutorial for R ? 16:22:56 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 16:23:46 -!- BeholdMyGlory has joined. 16:46:26 -!- MigoMipo has quit (Ping timeout: 255 seconds). 16:56:16 -!- variable has quit (Quit: Daemon escaped from pentagram). 17:03:34 -!- elliott has joined. 17:03:35 http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/parser/Parser.php?view=markup 17:04:01 Is it just me, or is using regexes for parsing such a stupid idea the MW devs ought to be shot? 17:04:31 yes 17:04:41 most markdown processors are like that too 17:04:57 That it is called a parser offends me. 17:05:07 Parser-arser. 17:05:15 It's a compiler in the yacc tradition, except ad-hoc and with regexps. 17:05:31 (i.e., the "traditional" use of yacc puts all the compiling logic in the parser actions) 17:05:36 (thus yet another *compiler* compiler) 17:06:34 05:37:35 And the field is 4 bits (16 values) 17:06:34 05:37:55 Total allocations: 6 17:06:35 lol 17:06:37 allocate a new IPv6 version 17:06:40 *IP version 17:06:42 WE'RE OUT OF VERSIONS 17:06:44 IP VERSION DEPLETION 17:06:55 05:48:55 Is that IPv7 stuff from Markov generator or ramblings of some crackpot? 17:07:08 Ilari: Seems like Markov. The IPv8 posts I linked are crackpottery. 17:07:13 (Pottery that has been cracked.) 17:07:22 Ilari: I think it's one of those fake-scientific-paper generator things' output. 17:07:30 Phantom_Hoover: Woah, that's one huge file 17:07:37 06:13:01 How is (a{b}c{d}e)*3 treated in BF Joust 17:07:37 06:13:04 aaabcccdeee? 17:07:40 Lymia__: that's not valid 17:07:40 What is it with people's hatred against splitting up code 17:07:45 one, (a{b}c) forms use %, not * 17:07:48 Links? 17:07:48 two, you can only have one per form 17:08:26 08:25:56 hm wolfram alpha says sum(1/log(8^(4k)+1)) diverges. i _think_ that means by the prime number theorem such a prime is likely to exist. 17:08:34 This is the most rigorous anyone has ever done Underload before. 17:08:41 08:26:38 oh wait. 17:08:42 08:28:52 it _doesn't_ exist, by what http://en.wikipedia.org/wiki/Fermat_number says. 17:08:42 lawl 17:09:48 13:04:47 hello NiFkE.. feel comfortable not to fear to ask yoûr unholy questions on that dark matter 17:09:48 13:05:12 here 17:09:48 way to give the wrong impression :P 17:10:02 13:08:29 [13:41] does anyknow know a tool that could do this: let's say I have 2GB of memory. I open the tool and tell it: "hey, make sure my ram never drops below 1.66GB." 17:10:02 13:08:29 [13:41] so filling my ram with dummy shit 17:10:02 13:08:29 [13:42] memtest86 3.0 or 2.0 had this but I'm not sure 17:10:02 13:08:34 [13:42] because I need to simulate something which only occurs between ram usage x and y. 17:10:05 oh god. 17:10:14 i wonder if it's the same person's fault 17:10:34 15:05:28 nddrylliog, what was the one elliott mentioned... OCC? 17:10:34 15:05:46 Vorpal: is that a troll attempt? 17:10:34 15:05:48 haven't looked at it 17:10:34 15:05:53 nddrylliog, no idea :) 17:10:40 oh man, I'm causing people to troll accidentally 17:10:45 well 17:10:47 maybe accidentally 17:10:49 or Vorpal is evil 17:11:55 15:43:51 Phantom_Hoover: fe2's dead already, you want to have a look at its successor http://esolangs.org/wiki/Crowbar 17:12:00 how did it die so quickly?! 17:12:48 I still can't get over the way that MW stores revisions as full page text. 17:13:04 git does that 17:13:05 and hg :P 17:13:10 Nat: cover from Number { 17:13:10 rule \A (a: Nat | a >= 0) 17:13:10 } 17:13:16 nddrylliog: you want that to be "a: Number" 17:13:26 elliott, no. 17:13:52 Phantom_Hoover: ? 17:13:54 Well, I suppose both would work. 17:14:00 not really 17:14:03 the way it is now is circular 17:14:05 which is just weird 17:14:09 all nats are >= 0 17:14:15 except that it's only because of that rule that it's valid 17:14:18 which then makes it a tautology 17:14:22 I'd definitely make it "a: Number" 17:14:30 16:30:26 impomatic --> python for a good first language 17:14:30 16:30:48 :-) 17:14:31 16:32:52 after you've reached guido's level you can only go up... yep, a good start 17:14:32 olsner++ 17:14:52 It's universal wossname, so "Number" doesn't make much sense. 17:15:45 Phantom_Hoover: "Nat: cover from Number" 17:15:51 Number is the type that Nat is covering. 17:15:51 Duh. 17:15:57 Covering? 17:16:02 RTFLanguage 17:16:05 And yes, I know that. 17:16:34 Number is just integer there I think. 17:16:35 So, uh. 17:16:36 oh man, I'm causing people to troll accidentally <-- indeed, you are evil! 17:16:47 It should definitely be Number. 17:16:52 It's a predicate that tells you whether a Number is a valid Nat. 17:17:07 Universal quantification is not the right thing to have, then. 17:17:11 elliott, btw here is the definition in those text files for a dwarf: http://df.magmawiki.com/index.php/DF2010:Dwarf/raw 17:17:16 elliott, have fun reading about their nails 17:17:19 Phantom_Hoover: Well, possibly. 17:17:30 elliott, oh and eyelashes! 17:17:36 don't forget that 17:18:02 -!- locks has joined. 17:18:09 not long, elliott 17:18:12 -!- locks has left (?). 17:18:20 what was that 17:18:20 :D 17:18:28 elliott, a bot of yours? 17:18:40 nope 17:18:44 elliott, then what 17:18:56 a reaction to me trolling #ooc-lang 17:19:01 elliott, heh 17:19:10 elliott, stop doing that. It isn't nice 17:19:26 Vorpal: I just said "now that fe2 is dead, how long until ooc dies too?!" 17:19:29 and left 17:19:32 it's ok, they know to ignore me 17:19:47 elliott, fe2 being? 17:20:06 nddrylliog's lang that is now the significantly less ambitious Crowbar. 17:21:34 elliott, why is crowbar on the esowiki. It doesn't look very esoteric at all 17:21:53 why, because it doesn't have a tarpit's syntax? 17:22:06 elliott, no, it just seemed too... sane? 17:22:15 believe me, it is not sane. 17:22:31 elliott, how so? 17:22:46 rtflogs for fe2 :P 17:23:32 elliott, when approx in this channel? 17:23:47 dunno, days ago? a week maybe? 17:23:55 ok 17:24:58 it was mentioned before it was called fe2 though 17:25:06 i'd just grep for or however the fuck you spell it 17:54:00 -!- Lymia__ has changed nick to Lymia. 17:54:01 -!- Lymia has quit (Changing host). 17:54:01 -!- Lymia has joined. 18:10:18 elliott: guido-bashing never gets boring :) 18:10:35 olsner: i just don't understand reduce, maaaan 18:10:46 ugh, ais isn't in here on weekends I just remembered 18:12:17 I need to restructure my executable semantics for Underload. yay! 18:12:26 which will complicate things a lot 18:12:59 elliott: it's a fold 18:13:09 olsner: SORRY I'M GUIDO VAN ROSSUM 18:13:09 but you never know which one... 18:13:10 WHAT IS A FOLD 18:13:12 IT SOUNDS LIKE FUNCTIONS 18:13:14 I DON'T LIKE FUNCTIONS 18:13:18 THEY'RE...FUNCTIONAL 18:13:30 I LIKE DOING A, B, AND THEN C, AND THAT'S WHY PYTHON DOESN'T HAVE EXCEPTIONS, IT WOULD BE NON-LINEAR 18:13:33 ...OH WAIT 18:13:36 PYTHON 4 WILL NOT HAVE EXCEPTIONS 18:13:38 ALERT THE PRESSES 18:14:21 writing goods specifications is hard 18:15:16 who is guido van rossum 18:15:38 python designer 18:15:40 ?? 18:15:54 -!- pikhq_ has changed nick to pikhq. 18:15:59 quintopia, who else? 18:16:13 i don't python. how would i know? 18:16:24 quintopia, you don't verb either 18:16:34 quintopia: gudio van rossum is ~THE GENIUS GOD OF PROGRAM~ 18:16:45 you could say he's a man who grew a beard but acquired none of the associated good properties 18:16:51 elliott: oh good. as long as it's not you. 18:17:05 he is the recordholder for "master of the greatest number of slaves in a BDSM relationship of all time" 18:17:06 basically it's him 18:17:08 and every python user 18:17:18 quintopia, I doubt elliott is a van (nor any other type of car) 18:17:20 `addquote who is guido van rossum you could say he's a man who grew a beard but acquired none of the associated good properties 18:17:27 292) who is guido van rossum you could say he's a man who grew a beard but acquired none of the associated good properties 18:26:15 * Gregor strokes his lack of a beard. 18:26:53 hmm, writing the executable semantics and then translating them to English seems easier than the other way around 18:27:04 -!- variable has joined. 18:27:07 * quintopia strokes Gregor's non-beard also 18:27:19 why do you shave sir? 18:27:22 http://pl.atyp.us/wordpress/?p=3184 --> might interest some people here 18:27:40 quintopia: I don't. 18:27:49 DHT or bust 18:27:54 wat 18:28:00 you just don't grow beard? 18:28:01 quintopia: Gregor is transgender. 18:28:05 * elliott nods sagely 18:28:12 I am not transgender >_< 18:28:16 Just ... transfacialhair. 18:28:18 elliott: transgender men can grow beards 18:28:22 Gregor: Sorry, sorry, I won't bring it up in here again. 18:28:28 quintopia: HE ISN'T TAKING HORMONES YET 18:28:31 now shut up about it 18:28:32 he's sensitive 18:28:58 if it were the case, you'd be the one being insensitive by saying "he" so much 18:29:06 quintopia: Being a blond anglo-ashkenazi does not make for much of a beard :P 18:29:13 Gregor: that's pretty lucky, not having to shave, really 18:29:39 quintopia, what? that's terrible 18:29:45 Well, it's not that I NEVER shave, I shave maybe shave once every two-three weeks. 18:29:48 by the way I wish my beard was larger 18:29:52 "shave maybe shave" ... 18:30:06 yep 18:30:15 it's how your weeks go 18:30:27 you shave, then maybe think about shaving, and then shave resp. each week 18:30:29 quintopia: Err, saying "he" wouldn't be insensitive... 18:30:30 quintopia, I have to shave twice a week if I wish to not have a beard 18:30:38 Saying "EX-SHE" would be :P 18:30:54 oh yeah sorry 18:31:00 i just got up 18:31:15 Vorpal: but of course, you do not wish to not have a beard 18:31:35 I'd have to shave twice a day to not have a beard of some kind 18:31:41 * hackagebot pandoc 1.8.0.3 - Conversion between markup formats http://hackage.haskell.org/package/pandoc-1.8.0.3 (JohnMacFarlane) 18:31:45 heh, time to update pandoc a day after I installed it 18:31:57 HEY GUYS I DON'T HAVE A BEARD 18:31:58 so I shave as often as Gregor instead 18:32:14 quintopia, I *do* wish to have a beard 18:32:25 what exactly does "eventually consistent" re Cassandra ? before it becomes consistent its undefined which value one obtains? 18:32:27 elliott, you are PATHETIC 18:32:31 Vorpal: not wish not = wish. 18:32:32 NO 18:32:34 I'M A WOMAN 18:32:41 quintopia: Classicist scum. 18:32:43 quintopia, eh, missed that :P 18:34:55 Who's the blondest person here? :P 18:34:59 *blondest male 18:35:08 I used to have nearly white hair when I was a kid 18:35:13 And blue eyes! 18:35:16 ME 18:35:25 I'M SO BLOND I'M NOT 18:35:29 But then my father's genes kicked in and I became unaryan around age 10-14 18:35:38 When I was a baby I was black, but had near-white blond hair. 18:35:59 Gregor is a nigger. 18:36:02 Sorry, negro. 18:36:10 *was 18:36:11 BUT NO LONGER 18:36:13 Racist scum :[ 18:36:20 Therefore, Gregor is Michael Jackson and therefore dead. 18:36:22 Ergo, Gregor is a ghost. 18:36:27 It stands to reason that he haunts this channel. 18:36:29 http://siyobik.info/misc/year_book.jpg left side was when I was like 17, right side around uhm no idea 18:36:57 Damn you can't actually see how bright the hair was back then, filthy lighting 18:37:05 But let me assure you, it was very Aryan! 18:37:23 http://www.facebook.com/photo.php?pid=30178018&l=1f7b9ff624&id=1055580469 Never mind, I guess my hair didn't lighten up 'til later :P 18:37:30 I have dark brownish hair but for some reason my beard is a slightly lighter shade of brown. Which is a bit annoying. 18:37:53 my hair is awesome-colored 18:38:02 is that a picture of Gregor charging his lazors? 18:38:04 http://siyobik.info/misc/e420/user/productive.jpg <- now it's pretty dark blonde, not sure what the colour is called 18:38:04 Ugh, this is not going well. 18:38:08 A failure stream of As is defined as follows: 18:38:09 Successful end is a failure stream. 18:38:09 Failure is a failure stream. 18:38:09 If x is an A, and xs is a failure stream of As, then Cons x xs is a failure stream. 18:38:18 olsner: Yup, the cameraman was killed when I FIRED MAH LAZAR seconds later. 18:38:23 My specification is turning into a mechanical translation of Haskell implementation details to English :P 18:38:35 Gregor: Holy shit you look weird. 18:38:53 elliott: just quote the haskell code? :) 18:39:03 Gregor: I think you were a guido baby. 18:39:06 Therefore, Gregor is GvR. 18:39:09 I have a video of my not-birth too. Blue -> black -> white :P 18:39:20 olsner: I'm trying to do http://catseye.tc/projects/burro/doc/burro.html but for Underload 18:39:32 olsner: But cpressey seems to be much better at it than I :P 18:40:18 I was wondering why the programming language looked exactly like Haskell 18:40:30 Until I noticed the "reference implementatino in Haskell" part 18:40:40 Gregor, do you actually follow the hat voting decisions? 18:40:58 Yes 18:41:07 elliott: yeah, that (/) is quite a brilliant piece of work 18:41:10 Gregor, how many people vote normally? 18:41:14 Vorpal: 1-3 18:41:20 Gregor, heh 18:41:31 is there a hat vote everyday? 18:41:32 Gregor, how often do you end up wearing that pirate-style hat? 18:41:41 I have no pirate-style hat. 18:41:48 Gregor, the black one? 18:41:56 I have at least five black hats. 18:42:07 Gregor, this one http://codu.org/hats/Tricorn-sm.jpg 18:42:15 Fairly rarely. 18:42:18 quintopia: It's not the language he's better at, it's the "specification is executable formal semantics" :P 18:42:24 Gregor, what is it if not pirate style? 18:42:26 (Gregor will now kill me for saying "formal semantics".) 18:42:31 It's an American tricorn. 18:42:40 It postdates the hight of piracy by a century. 18:42:41 aka 18:42:45 a sam adams hat :P 18:42:50 Gregor, oh :( 18:42:50 *height 18:42:53 Yes, a Sam Adams hat. 18:42:55 Gregor, you need a pirate style one! 18:43:07 -!- MigoMipo has joined. 18:44:21 a french tricorn! 18:45:09 ...wait, how does that work. 18:45:13 Ohh. 18:45:23 ...wait, what. 18:45:25 elliott, how does *what* work? 18:45:28 elliott, hats? 18:45:28 This! 18:45:30 Yes, hats. 18:45:36 they work by putting them on your head! 18:45:36 I don't understand them 18:45:38 in the slightest 18:45:40 they're so 18:45:41 confusing 18:45:44 elliott, :D 18:45:44 France: "Surprise sex!" 18:45:51 > data FailureStream a = End Stack 18:45:51 > | Failure 18:45:51 > | Cons a (FailureStream a) 18:45:52 : parse error on input `data' 18:45:52 : parse error on input `|' 18:45:52 : parse error on input `|' 18:45:54 Now it's NOT GENERAL AT ALL 18:46:16 > data Result = End Stack 18:46:16 > | Failure 18:46:17 > | Output String Result 18:46:17 : parse error on input `|' 18:46:17 : parse error on input `|' 18:46:18 : parse error on input `data' 18:46:18 That's better. 18:46:20 Shut up, lambdabot. 18:46:35 Gregor: which hat is the most trilby-like? 18:47:26 quintopia: http://codu.org/hats/LGreyTrilby-med.jpg <-- the one that's a Trilby. 18:47:48 thx. i can never tell what hats are by looking 18:48:14 hey, i think it might be a gonad 18:48:17 hmm 18:48:18 maybe 18:48:19 oh 18:48:20 if it was generic 18:48:21 darn 18:48:24 insufficiently gonadic 18:49:20 yep 18:49:22 it's a gonad 18:49:25 sorry NOMAD 18:49:33 > andThen :: Result -> (Stack -> Result) -> Result 18:49:34 Not in scope: type constructor or class `Result'Not in scope: type construc... 18:49:35 :DDDDDDDDDDDDDDD 18:50:17 > andThen :: Result -> (Stack -> Result) -> Result 18:50:17 > End xs `andThen` f = f xs 18:50:17 > Failure `andThen` _ = Failure 18:50:17 > Output s r `andThen` f = Output s (r `andThen` f) 18:50:18 : parse error on input `=' 18:50:18 Not in scope: type constructor or class `Result'Not in scope: type construc... 18:50:18 : parse error on input `=' 18:50:18 : parse error on input `=' 18:50:18 beautiful 18:50:22 FUCK OFF LAMBDABOT 18:50:38 elliott, you are sure you want it to leave the channel? 18:50:42 no 18:50:44 you will be asking for it back soon 18:50:45 i just want it to shut up for a bit 18:50:54 elliott, use another prefix 18:50:57 >stfu 18:50:59 it's literate haskell 18:51:01 that's the prefix. 18:51:05 quintopia, that works? 18:51:12 it's literate haskell 18:51:12 that's the prefix. 18:51:12 iunno :P 18:51:17 i'm copying it from my file. 18:51:30 elliott, I saw it first time... 18:51:33 :p 18:51:41 elliott: your gonad monad has an enormous continuation 18:51:48 absolutely 18:51:55 quintopia, gonad nomad you mean 18:52:12 possibly 18:52:16 elliott, btw what are you doing currently 18:52:41 Vorpal: writing a formal specification with Underload -- formal in that it contains executable formal semantics for the language 18:52:48 which also serves as a reference interpreter 18:53:13 (the executable semantics taking precedence over the English text in case of contradiction) 18:53:22 who designed this formal semantics grammar? 18:53:33 it's... Haskell 18:53:35 what do you mean? 18:53:41 mm 18:53:44 (ML was designed for the specification of formal semantics, btw) 18:53:54 (and Haskell is close enough that it does it just as well, perhaps even better) 18:56:03 anyway, the idea is to improve it sufficiently, get ais523's approval, and then call that the new official Underload specification 19:03:17 :t lookup 19:03:17 forall a b. (Eq a) => a -> [(a, b)] -> Maybe b 19:06:54 lookup? consider using Data.Map :) 19:07:09 -!- oerjan has joined. 19:07:16 olsner: for 6 keys? 19:07:34 besides, this is an executable semantics. dependencies are bad. 19:08:13 08:25:56 hm wolfram alpha says sum(1/log(8^(4k)+1)) diverges. i _think_ that means by the prime number theorem such a prime is likely to exist. 19:08:28 17:26:11 08:28:52 it _doesn't_ exist, by what http://en.wikipedia.org/wiki/Fermat_number says. 19:08:31 17:26:11 lawl 19:08:43 hey you CUT OUT A LINE 19:09:03 of course the first idea requires assuming that these behave like random numbers, which _most_ prime numbers seem to do. just not these. 19:09:21 oerjan: so uh, finished your base converter yet? :p 19:09:54 um btw regarding the missing line, this has nothing to do with underload 19:10:14 oerjan: erm 19:10:20 wasn't it sparked after writing your base converter? 19:10:54 no it was sparked by Ilari mentioning the base 10 minimal prime substring list 19:11:26 as for base converter, my current idea is to actually do decimal arithmetic in underload 19:11:47 @hoogle (a -> m a) -> (a -> m a) -> a -> m a 19:11:48 Data.Generics.Aliases extMp :: (MonadPlus m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a 19:11:48 Data.Generics.Aliases extM :: (Monad m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a 19:11:48 Control.Monad (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c 19:11:53 not particularly converting though, except possibly from/to church numerals 19:12:01 ah 19:12:02 so 19:12:08 eval (i:is) = step i >=> eval is 19:12:09 nice! 19:12:15 TODO: replace it with that after implementing monad instance 19:12:19 (thus generalising Result...) 19:12:39 then it's just 19:12:40 >=> is a Monad version of Arrow >>>, btw 19:12:43 eval [] = End 19:12:47 eval (i:is) = step i >=> eval is 19:12:53 oerjan: omg, does that mean my result type might be an arrow? :D 19:13:07 because the type subclasses are historically not enforced 19:13:08 > data Result = End Stack 19:13:08 > | Failure 19:13:08 > | Chunk [Word8] Result 19:13:08 > 19:13:08 > andThen :: Result -> (Stack -> Result) -> Result 19:13:09 : parse error on input `data' 19:13:09 mueval-core: NotAllowed "These modules have not been loaded:\nL\n" 19:13:09 > End xs `andThen` f = f xs 19:13:09 mueval-core: NotAllowed "These modules have not been loaded:\nL\n" 19:13:09 Not in scope: type constructor or class `Result'Not in scope: type construc... 19:13:10 : parse error on input `=' 19:13:11 > Failure `andThen` _ = Failure 19:13:12 : parse error on input `=' 19:13:13 > Chunk s r `andThen` f = Chunk s (r `andThen` f) 19:13:14 : parse error on input `=' 19:13:15 obviously, needs typeclasses 19:13:17 but andThen is just >>= flipped 19:13:21 in fact the structure is such that they cannot be 19:13:25 however you spell it starting with klieilieisei 19:13:26 arrow 19:13:28 thing 19:13:55 :k Kleisli 19:13:56 (* -> *) -> * -> * -> * 19:14:02 er 19:14:13 :t Kleisli 19:14:14 forall a (m :: * -> *) b. (a -> m b) -> Kleisli m a b 19:14:51 yes that's the thing converting from Monad to Arrow, essential just a newtype wrapper to get the kinds right 19:14:57 *ly 19:15:08 -!- pikhq_ has joined. 19:15:13 -!- pikhq has quit (Ping timeout: 250 seconds). 19:15:31 oerjan: no i meant 19:15:39 oerjan: Kleisli arrow or whatever 19:15:42 what >>= was originally called 19:15:44 same apart from flipped args 19:15:47 it's in category-extras I think 19:15:50 as just flip (>>=) 19:16:02 *Main> eval [Push [Duplicate, Enclose, Output, Output], Duplicate, Enclose, Output, Output] [] 19:16:02 Chunk [40,58,97,83,83,41] (Chunk [58,97,83,83] (End [])) 19:16:08 just going to assume that that's (:aSS):aSS there :D 19:16:17 (Word8s because Underload programs can output invalid Unicode) 19:16:22 well, invalid UTF-8 19:16:36 that structure can also end in Invalid 19:16:43 i.e. it's like (Maybe [a]), except lazy 19:16:50 [Maybe a], except after Nothing no further elements are allowed 19:16:52 elliott: i vaguely recall that the _actual_ math kleisli arrow is just as close to >=> as to >>= 19:16:57 oerjan: hm 19:17:07 it's just a slight change in viewpoint i think 19:17:46 when your category is cartesian closed, anyway 19:17:52 I suppose that 19:17:58 data Result = End Stack | Failure | Chunk [Word8] Result 19:17:59 should be 19:18:13 data Result e a = End e | Failure | Chunk a (Result e a) 19:18:20 then (Result e) is a monad 19:18:24 i think 19:18:28 indeed 19:18:30 probably 19:18:33 wait is it? 19:18:35 yes 19:18:36 elliott: an Arrow requires your type to be polymorphic in the argument and result types, though 19:18:36 it is 19:18:45 oerjan: data Result e a = End e | Failure | Chunk a (Result e a) 19:18:49 could a be the argument and e the result? 19:18:50 or something? 19:19:03 the reverse 19:19:14 for order 19:19:25 (->) a e for functions e.g. 19:19:40 oerjan: ah 19:19:48 oerjan: but then (Result a) being a monad is strange 19:19:51 because (Result e) is essentially like [] 19:20:08 and there is an embedding of functions using the pure function 19:20:14 er, *arr 19:20:24 i think pure is a deprecated synonym 19:20:33 (confuses with Applicative 19:20:34 ) 19:20:46 oerjan: hm I'm not sure you can map functions to Result 19:20:58 so perhaps it isn't an arrow 19:21:01 elliott: as i said, the kinds are wrong for a type being both Monad and Arrow simultaneously 19:21:04 right 19:21:09 it's more a Monad than an Arrow I believ 19:21:11 *believe 19:21:33 all Monads "are" Arrows, but the kinds require the Kleisli wrapper 19:21:43 oh, shit 19:21:45 i don't have return 19:21:50 return :: a -> Result e a 19:21:52 because that has to be 19:21:58 return x = Chunk x (End y) 19:22:03 and we don't know that e is inhabited 19:22:09 perhaps it should be "Chunk x Failure", but that seems /weird/ 19:22:11 :/ 19:22:28 hm even Arrows have that kind of return (it's just arr . const, i think) 19:23:00 oerjan: I /could/ fix e to Stack 19:23:02 but that seems strange 19:23:06 being polymorphic in the type of output but not the end 19:23:12 admittedly, this is a kind of "single use" monad 19:23:18 but I'm having to make it unnecessarily polymorphic /anyway/ 19:23:22 not being able to go all the way seems stupid 19:24:17 (Word8s because Underload programs can output invalid Unicode) <-- only if the program contains them to begin with... 19:24:26 oerjan: well, duh 19:24:27 oerjan: your point? 19:26:54 oerjan: :p 19:27:36 underload programs _are_ intuitively arrows imo, as long as you ignore the "always stack" part 19:27:58 oerjan: it's not programs here 19:27:59 it's Results 19:28:09 whatever that is 19:28:13 > data Result e a = End e 19:28:13 > | Failure 19:28:13 > | Chunk a Result 19:28:13 > deriving (Show) 19:28:14 : parse error on input `data' 19:28:14 : parse error on input `|' 19:28:14 like I said 19:28:14 : parse error on input `deriving' 19:28:14 : parse error on input `|' 19:28:20 for underlload, e = Stack and a = [Word8] 19:28:29 this allows for programs that output infinite output, but still handling invalid programs without error 19:28:33 e.g. 19:28:36 (abc)Sx 19:28:36 -> 19:28:41 somehow i don't think pasting .lhs is a very good idea here :D 19:28:41 Chunk "abc" Failure 19:28:44 oerjan: INDEED 19:28:55 you could use the \begin{code} version... 19:29:30 well i assume, not that i've tried lhs 19:29:38 oerjan: it's Markdown 19:29:40 so that would be weird 19:29:53 dunno if pandoc would handle that 19:30:03 hm must > be at the beginning of the line? 19:30:05 yes 19:30:06 > test 19:30:11 even in lhs 19:30:14 which stopped me making a table 19:30:16 aww 19:30:17 -!- Wamanuz3 has joined. 19:30:19 where LHS = english and RHS = corresponding haskell :D 19:30:23 for data types 19:30:33 -!- Wamanuz2 has quit (Ping timeout: 265 seconds). 19:30:35 oerjan: with that Kleisli thing, does it auto-derive an Arrow instance? 19:30:36 i guess not 19:31:05 um sure 19:31:08 -!- iconmaster has joined. 19:31:21 instance Monad m => Arrow (Kleisli m) where something 19:31:26 yeah, what's something :P 19:31:42 pretty obvious, really 19:32:16 -!- asiekierka has quit (Remote host closed the connection). 19:33:14 oerjan: yeah but i don't really know Arrows 19:33:15 I haven't done them 19:33:17 much 19:33:18 at all 19:33:34 elliott: C:\Programfiler\Haskell Platform\2010.2.0.0\doc\html\libraries\base-4.2.0.2\src\Control-Arrow.html 19:33:38 oerjan: *fail* 19:33:44 wait what :D 19:33:52 :D 19:34:03 http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Arrow.html 19:34:06 hugs always opened the web site 19:34:19 i think you _can_ choose not to install the docs 19:34:23 but i imagine opening them would just fail 19:34:31 elliott: i wanted to link you the source, but i guess you can just click in there 19:34:39 http://www.haskell.org/ghc/docs/latest/html/libraries/base/src/Control-Arrow.html 19:35:19 -!- Mathnerd314 has joined. 19:35:19 ooh, maybe I'll make it 19:35:24 (Monoid e) => Monad (Result e) 19:35:26 and use mzero 19:35:28 for the End 19:35:36 ARGUABLY, however, that's retarded 19:35:53 in the "makes no sense" way 19:36:30 @pl \(i:is) -> step i >=> eval is 19:36:30 ap ((. eval) . (>=>) . step . head) tail 19:36:34 hmph 19:36:56 @pl foldr (\(i:is) r -> step i >=> r) End 19:36:56 foldr ((>=>) . step . head) End 19:37:00 :D 19:37:03 oerjan: 19:37:04 eval [] = End 19:37:07 eval (i:is) = step i >=> eval is 19:37:09 OR---- 19:37:15 eval = foldr ((>=>) . step . head) End 19:38:11 `quote noticed 19:38:16 90) I'd imagine that it already has, and no one noticed 19:38:37 oerjan: I wish Control.Monad was called Data.Monad. 19:38:45 elliott: um there shouldn't be any head, surely 19:38:54 oerjan: er, why not? 19:39:04 @pl foldr (\(i:is) r -> step i >=> r) End 19:39:04 foldr ((>=>) . step . head) End 19:39:07 oh 19:39:08 indeed 19:39:13 @pl foldr (\i r -> step i >=> r) End 19:39:13 foldr ((>=>) . step) End 19:39:22 oerjan: ooh, I think that's actually a lot more appealing 19:40:04 but Monad is not a data structure, it's a class... 19:40:38 -!- impomatic has left (?). 19:40:39 admittedly some things in Data are so generalized they've turned into classes too 19:40:58 oerjan: well, yes, but Control implies control structure 19:41:04 and Haskell doesn't really have any of them 19:41:20 well, it has things like "while" generic on monads, but those only act like control structures on "sequential" monads 19:41:30 e.g. I have no idea what while would do in the list monad 19:41:50 Couldn't match expected type `Word8' 19:41:51 against inferred type `[Instruction]' 19:41:51 Expected type: [Word8] 19:41:51 Inferred type: Stack 19:41:51 In the second argument of `(>=>)', namely `eval is' 19:41:51 In the expression: step i >=> eval is 19:41:53 wat 19:41:57 well while is rather meaningless in a monad without mutable state 19:41:59 oh, sweet 19:42:01 my program is broken 19:42:03 oerjan: indeed 19:42:10 since each iteration cannot see anything different 19:42:11 underload.hs:32:22: 19:42:12 Couldn't match expected type `a' against inferred type `[Program]' 19:42:12 `a' is a rigid type variable bound by 19:42:12 the type signature for `>>=' at 19:42:12 In the first argument of `f', namely `xs' 19:42:13 In the expression: f xs 19:42:15 In the definition of `>>=': End xs >>= f = f xs 19:42:17 let's 19:42:19 see 19:42:21 andThen was 19:42:29 andThen :: Result -> (Stack -> Result) -> Result 19:42:31 or 19:42:33 generalising 19:42:46 andThen :: Result Stack a -> (Stack -> Result Stack b) -> Result Stack b 19:42:46 or 19:42:47 generalising 19:43:03 andThen :: m e a -> (e -> m e b) -> m e b 19:43:05 hmm 19:43:06 so if we flip 19:43:19 andThen :: (m a) e -> (e -> (m a) e') -> (m a) e' 19:43:22 indeed 19:43:31 it should be (Result a e), as silly as that is 19:43:36 this makes return possibly too 19:43:37 *possible 19:44:18 hm I should rename it from Result 19:44:22 oerjan: what would you call (ListT Maybe)? 19:44:31 except that Nothing takes an argument 19:44:38 so (ListT (Either e)), I guess 19:44:42 except 19:44:46 yes, that's it 19:44:53 * oerjan isn't very familiar with ListT 19:44:57 so (Right []) and (Left foo) are the possible endings 19:45:02 oerjan: basically every cons cell is wrapped in the argument 19:45:02 i.e. 19:45:03 instead of 19:45:06 1 : 2 : 3 : [] 19:45:07 you get 19:45:15 Just (1 : Just (2 : Just (3 : Just []))) 19:45:17 or alternatively 19:45:19 Just (1 : Nothing) 19:45:23 except in this case 19:45:26 s/Just/Right/ 19:45:29 and s/Nothing/Left e/ for some e 19:45:45 I'm calling it Result, but really what I call Result should be what I call (Result [Word8] Stack), it's Underload-evaluation-specific 19:45:48 FailureStream maybe? 19:45:54 ...i somehow have doubt that's what they usually call ListT... 19:45:54 but that's ugly and long. 19:46:04 oerjan: I think it is... at least ski in #haskell implied so 19:46:06 oerjan: well, this is the actual structure 19:46:14 huh 19:46:16 data Foo a e = End e | Failure | Chunk a (Foo a e) 19:47:07 in underload evaluation, (End stack) means "I've finished evaluating this program or instruction or whatever, and here's what the stack was at the end", Failure meant "oops, your program is wrong, it executed an invalid instruction / popped from an empty stack / etc.", and "Chunk s r" means "hey, I have some output! print out s now, and my further work is in r" 19:47:09 so e.g. 19:47:23 -!- Lymia_ has joined. 19:47:29 (x)(foo)S -> Chunk "foo" (End [theQuotation "x"]) 19:47:34 (foo)Sx -> Chunk "foo" Failure 19:47:42 just not sure what to call that generic verison 19:47:42 -!- Lymia has quit (Disconnected by services). 19:47:43 -!- Lymia_ has changed nick to Lymia. 19:47:44 -!- Lymia has quit (Changing host). 19:47:44 -!- Lymia has joined. 19:48:43 well End is pretty returny 19:48:57 and the a looks Writery 19:49:23 oerjan: :D 19:49:30 oerjan: indeed 19:49:37 > instance Monad (Foo a) where 19:49:37 > return x = End x 19:49:38 > End xs >>= f = f xs 19:49:38 > Failure >>= _ = Failure 19:49:38 > Chunk s r >>= f = Chunk s (r >>= f) 19:49:38 : parse error on input `instance' 19:49:38 : parse error on input `=' 19:49:38 : parse error on input `=' 19:49:39 : parse error on input `=' 19:49:39 : parse error on input `=' 19:49:41 (fuck off lambdabot) 19:49:43 that's the monad instance 19:49:47 I just don't know what to call it 19:50:01 and Failure looks ErrorTy 19:50:06 oerjan: :D 19:50:14 oerjan: i don't mean "reduce this to simpler monads" 19:50:17 i mean literally "what do i call it" 19:50:35 the Undermonad 19:51:32 * Sgeo goes to try WebGL 19:51:48 olsner: wat 19:51:56 WebGL + AJAX fascinates me 19:52:07 elliott: underload+monad, undermonad' 19:52:43 or ULM for UnderLoadMonad, or whatever 19:54:34 -!- TLUL has joined. 19:56:24 I wish fail didn't take a tsring 19:56:25 *string 19:56:26 -!- azaq23 has joined. 19:56:27 why does it do that? 19:57:12 so that you can give it to error while you complain about the mistakes of the founding fathers 19:57:46 olsner: i pretty much think that spj must have been on crack to fuck up the Prelude as much as he did 19:57:54 oerjan why didn't you tell them it sucked when you had the chance! 19:57:55 -!- MigoMipo has quit (Ping timeout: 260 seconds). 19:58:18 http://people.mozilla.com/~sicking/webgl/ray.html PRETTY 20:00:22 oerjan: ooh, eval is actually "foldr ((>=>) . step) return" 20:00:28 I have a feeling that might be a rather general concept... 20:00:30 elliott: fail takes a string so that the compiler can pass file and line number to it for do notation match failures. i think. 20:00:37 oerjan: "BLAH BLAH BLAH" 20:00:44 :t \step -> foldr ((>=>) . step) return 20:00:45 forall (m :: * -> *) c a. (Monad m) => (a -> c -> m c) -> [a] -> c -> m c 20:00:57 what a peculiar type 20:01:09 well c is evaluation state 20:01:10 so s 20:01:13 a is instruction, so i 20:01:14 :t foldM 20:01:15 forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a 20:01:20 (i -> s -> m s) -> [i] -> s -> m s 20:01:22 aha 20:01:28 olsner: not quite 20:01:32 hmm 20:01:36 :t foldM . flip 20:01:37 forall a b (m :: * -> *). (Monad m) => (b -> a -> m a) -> a -> [b] -> m a 20:01:38 though foldM iirc is a left fold, not a right one 20:01:42 right 20:01:44 that's the issue 20:01:47 this needs to be lazy 20:01:51 (i -> s -> m s) -> [i] -> s -> m s 20:01:53 quite easy to decipher 20:02:03 given (given an instruction, and state, evaluate and return the new state), 20:02:06 and a program (list of instructions), 20:02:08 and an initial state, 20:02:10 return the state 20:02:12 @hoogle (i -> s -> m s) -> [i] -> s -> m s 20:02:12 Data.Foldable foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b 20:02:12 Control.Monad zipWithM_ :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m () 20:02:13 Control.Monad zipWithM :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m [c] 20:02:17 foldrM is exactly it. 20:02:26 :) 20:02:39 or, wait, what's b there 20:02:47 oh, initial state 20:03:05 foldrM step [] 20:04:09 hmm 20:04:15 if you add some transformer you could make it e.g. mapM_ step 20:04:17 @check (\f g x -> f x == g x) 20:04:17 Overlapping instances for GHC.Show.Show (t -> a) 20:04:17 arising from a use of `... 20:04:23 olsner: lol 20:05:10 elliott: lol why? 20:05:32 olsner: well i can't imagine what transformer it would be 20:05:45 although (Result a e) is basically (ListT (Either e) a) I think 20:06:20 foldrM step [] 20:06:20 :: (Foldable t) => t Instruction -> Result [Word8] Stack 20:06:21 awesome 20:06:41 looks like a match for StateT s, but maybe that applies your state transformations backwards 20:06:59 olsner: well 20:06:59 reverse state monad :) 20:07:04 > data Result a e = End e 20:07:04 > | Failure 20:07:04 > | Chunk a (Result a e) 20:07:04 > deriving (Show) 20:07:05 : parse error on input `deriving' 20:07:05 : parse error on input `|' 20:07:05 : parse error on input `data' 20:07:05 : parse error on input `|' 20:07:07 that's just the result 20:07:11 *type 20:07:14 (Result a) being the monad 20:07:24 Chunk is partial output, End gets the stack at the end 20:07:27 Failure is obvious 20:07:51 olsner: basically, (Result a e) is like (Maybe ([a], e)), except that the "a"s are delivered lazily 20:08:04 the latter can't handle infinite output when you evaluate recursively 20:08:07 but the former can 20:08:12 -!- Lymia_ has joined. 20:08:18 both are an alternative to ([a], e) and using "error" for invalid programs 20:08:18 -!- Lymia has quit (Disconnected by services). 20:08:19 -!- Lymia_ has changed nick to Lymia. 20:08:20 -!- Lymia has quit (Changing host). 20:08:20 -!- Lymia has joined. 20:09:57 on a scale of 1 to 10, depending on parsec for your language's semantics rates somewhere around -50 20:10:00 time to write a recursive parser 20:10:04 ooh, ooh, I should parse _lazily_! 20:10:15 so that "(:^):^hello" never errors. 20:10:19 GOOD THING I HAVE A TYPE FOR THAT 20:10:33 or wait, do I :/ 20:10:35 yes, I do 20:10:36 kinda 20:10:37 I think 20:10:38 maybe 20:10:39 hmm 20:10:45 aw man 20:10:50 I need all kinds of Foldable shit here I think 20:12:51 yeah it'll be lazy except that 20:13:04 ((:^):^hello)^ 20:13:07 will parse invalidly 20:13:09 i guess that is ok 20:13:18 um no 20:13:21 i suppose I could make Program be "t Instruction" for foldable t 20:13:25 oerjan: no, as in 20:13:27 it'll parse error 20:13:28 wait 20:13:29 no it won't 20:13:33 you need to support ((:^):^hello)S 20:13:35 right 20:13:36 indeed 20:13:37 i know _that_ 20:13:38 hmm 20:13:44 so in fact, the parser being lazy gets me exactly one thing 20:13:50 (:^):^( will run correctly 20:14:00 the thing is, it lets me use (interact run) 20:14:02 and it'd be like a repl 20:14:04 thanks to lazy parsing :P 20:14:07 except that \n is invalid 20:14:08 oh whatever 20:14:09 ^ul (hi)S( 20:14:09 hi ...unterminated (! 20:14:15 ^ul (:^):^( 20:14:16 ...out of time! 20:14:18 see? 20:14:20 elliott: well, it would be worse to put semantics in the parser if the parser wasn 20:14:27 wasn't written in parsec 20:14:28 oh 20:14:39 olsner: it's a recursive function 20:14:52 the parser? 20:14:53 because having the semantics of your language depend on the subtleties of parsec and even its error handling is Not Good 20:14:55 yes 20:15:00 thankfully Underload is dirt simple 20:16:06 !underload (:^):^( 20:16:11 Error: Expected ) at end of input 20:16:26 hm in fact i want to return the rest of the input separately I think 20:16:26 urgh 20:16:30 this is so complicated :) 20:16:35 i'll have to consult ais523 20:16:43 another matter i have to consult him about: whether infinite programs are valid or not 20:16:44 it would seem our implementations don't quite agree on parsing... 20:16:47 I'll strongly recommend "no" 20:16:56 because if infinite programs are allowed, then there is a program that outputs Chaitin's constant 20:17:04 and it looks like (0)S(.)S(something)S(something)S... 20:17:09 booh! why disallow infinite programs? 20:17:12 and that's just not right 20:17:14 olsner: because if infinite programs are allowed, then there is a program that outputs Chaitin's constant 20:17:20 so? 20:17:25 olsner: Chaitin's constant is not even _remotely_ computable 20:17:30 so? 20:17:37 olsner: *sigh* 20:17:41 :) 20:17:43 i'm sure oerjan agrees >:D 20:17:52 i don't even know what it would do the computational complexity 20:17:55 infinite programs can do anything :p 20:18:04 * oerjan sidles away carefully 20:18:13 IMO, if it causes horribleness, then that's just all the more reason to do it 20:18:36 but underload is _elegant_ 20:18:49 hmm, I thought it was an esolang? 20:18:58 it is still elegant 20:19:24 yeah, Underload isn't horrific at all 20:19:32 it's a tarpit, but a really graceful one, it doesn't feel forced 20:20:34 wow, Chris Pressey wrote a _CGI frontend_ to the DragonFly BSD installer 20:20:35 that's just wrong! 20:20:47 seriously: http://www.bsdinstaller.org/images/screenshots/cgi-partition.png 20:22:48 > parse ('(':s) = r >>= \s' -> Chunk (Push p) (parse s') 20:22:48 > where r = parse s 20:22:48 > p = toList r 20:22:48 > toList (Chunk x xs) = x : toList xs 20:22:48 > toList _ = [] 20:22:49 : parse error on input `where' 20:22:49 : parse error on input `=' 20:22:49 : parse error on input `=' 20:22:49 : parse error on input `=' 20:22:50 : parse error on input `=' 20:22:52 SCARED YET 20:23:10 yes, that really processes the internal monadic stuffs as well as using it as an action. 20:23:11 mwahahaha. 20:23:43 Chunk (Push p) . parse =<< r 20:24:31 olsner: lol 20:24:38 @pl r >>= \s' -> Chunk (Push p) (parse s') 20:24:38 Chunk (Push p) . parse =<< r 20:24:45 oerjan: NOW WHAT FANCY MONAD FUNCTION IS THAT 20:24:52 !underload (hi)Sthere 20:24:57 hiAttempt to execute unknown command 116 20:25:21 hmm, turns out I'm doing @pl in my head whenever I see haskell code 20:25:22 I really wish Haskell had overloaded chars 20:25:26 ^ul (hy)Sterical 20:25:27 hy ...bad insn! 20:25:30 -!- MigoMipo has joined. 20:25:41 :t lookup 20:25:42 forall a b. (Eq a) => a -> [(a, b)] -> Maybe b 20:25:43 (Just checking what the error message was.) 20:25:49 elliott: it has overloaded strings 20:25:56 oerjan: but not chars 20:26:07 we also need overloaded lists so that ['a','b','c'] can be kept to mean "abc" :D 20:27:14 :t msum 20:27:15 forall (m :: * -> *) a. (MonadPlus m) => [m a] -> m a 20:27:19 :t maybe 20:27:20 forall b a. b -> (a -> b) -> Maybe a -> b 20:27:39 :t fromMaybe 20:27:40 forall a. a -> Maybe a -> a 20:28:27 i wonder if comma-separated lists used msum and return back when lists were monad comprehensions 20:29:04 http://en.wikipedia.org/wiki/List_of_emoticons look at the last row of the first table 20:29:16 oerjan: heh, [1,2,3] denoted a monad comprehension? 20:29:22 -!- pikhq_ has changed nick to pikhq. 20:29:30 elliott: that's what i'm asking 20:30:08 ONLY ONE WAY TO FIND OUT, anyone have a really old hugs release? 20:30:14 i _think_ [x] would have had to be a synonym for return x, to fit with the rest, i'm just less sure of commas 20:30:21 hmm 20:30:24 I guess it was Gofer then 20:30:49 oerjan: what would [x,y,z] be? [msum [return x, return y, return z]]? 20:30:53 @hoogle (a -> m b) -> [a] -> m b 20:30:53 Prelude concatMap :: (a -> [b]) -> [a] -> [b] 20:30:53 Data.List concatMap :: (a -> [b]) -> [a] -> [b] 20:30:53 Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b 20:31:13 oerjan: why do I get the impression that Haskell 98 made Haskell quite a bit less awesome? 20:31:15 elliott: yeah 20:31:27 elliott: because many people agree 20:31:32 :D 20:32:00 oerjan: i just want monad comprehensions, they're cool 20:32:13 wonder if that guy who added them to ghc ever submitted the patch 20:32:15 elliott: well i think they were recently added again 20:32:22 there was a blag post about it 20:32:25 but afaik it's not in mainline ghc 20:32:42 there was a recent reddit post about someone using it for sql i think 20:32:49 interesting how Haskell started off as a very standards-defined language, and then when standards stopped getting published it became implementation-defined by GHC 20:32:56 even more surprising considering that this was the case even when GHC wasn't the only player 20:32:59 (stealing linq back from c#) 20:33:21 that's embarrassing, having to add a feature removed in the past just to match C# :D 20:34:58 -!- Behold has joined. 20:36:27 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds). 20:39:53 elliott: It seems that monad comprehensions will be back in GHC 7.2 20:39:58 Yay. 20:40:54 (as that's the deadline for the feature request, nobody is opposed to adding it, and Simon Peyton-Jones is for it.) 20:41:06 @hoogle (a -> a') -> (a,b) -> (a',b) 20:41:07 Data.Graph.Inductive.Query.Monad mapFst :: (a -> b) -> (a, c) -> (b, c) 20:41:07 Data.Graph.Inductive.Query.Monad (><) :: (a -> b) -> (c -> d) -> (a, c) -> (b, d) 20:41:07 Data.Graph.Inductive.Graph nmap :: DynGraph gr => (a -> c) -> gr a b -> gr c b 20:41:12 hm 20:41:16 what's the arrow thing for that 20:45:44 HEY OERJAN 20:45:45 -!- copumpkin has changed nick to dddarius. 20:45:46 WHAT'S THE ARROW THING FOR THAT 20:45:52 -!- elliott has changed nick to ddddarius. 20:48:11 -!- dddarius has changed nick to copumpkin. 20:48:33 -!- ddddarius has changed nick to elliott. 20:49:36 :t first 20:49:36 forall (a :: * -> * -> *) b c d. (Arrow a) => a b c -> a (b, d) (c, d) 20:51:36 -!- poiuy_qwert has joined. 20:53:29 right 20:53:34 > first succ (1,2) 20:53:35 (2,2) 20:55:38 > let foo | Just x <- Just 3 = x | otherwise = 4 in foo 20:55:39 3 20:55:41 yay 20:56:19 lambdabot does pattern guards now? 20:56:45 evidently 20:56:52 oerjan: *Caleskell 20:57:25 well that's not just caleskell, it doesn't define anything just sets an option? 20:57:49 oerjan: IT'S ALL PART OF THE CALESKELL REPORT 20:58:05 i just recall lambdabot was pretty much restricted to '98 syntax when i was around there 20:59:15 oerjan: no it has all sorts of options. 20:59:18 not tuple sections though, IIRC they clash 20:59:20 um is this caleskell report an actual document? 20:59:22 also no template haskell i believe 20:59:24 presumably for security 20:59:25 oerjan: no :D 20:59:43 AM DISAPPOINT 20:59:51 food -> 21:04:11 one thing i noticed recently 21:04:16 > (0$0$) 21:04:17 The operator `GHC.Base.$' [infixr 0] of a section 21:04:17 must have lower prec... 21:04:39 oerjan: how quickly do you eat? :P 21:04:43 $ is still infixr, contrary to a well known Cale suggestion 21:04:48 lol 21:04:50 -!- BeholdMyGlory has joined. 21:04:55 -!- Behold has quit (Read error: Operation timed out). 21:04:59 we should get that fixed! 21:05:11 i haven't actually started eating, i just made my slices of bread... 21:05:38 hey Cale, you should fix Caleskell, ($) is still infixr 21:06:09 you actually told him? :D 21:06:36 theory: people like spending more time coding for shorter runtime, because coding is busywork and you don't notice time passing 21:06:36 whereas execution is usually uneventful until you get a result, and thus the time drags out 21:06:38 oerjan: yep :P 21:06:56 nice theory 21:08:21 elliott, I don't get the ($) thing 21:08:23 Shouldn 21:08:35 Shouldn't it be infixr? 21:08:59 Or am I thinking too imperatively? 21:09:09 Sgeo: Cale believes that people should write f . g $ h x instead of f $ g $ h x chains 21:09:09 oerjan: shortened by gwern: 21:09:11 coding is fun. waiting isn't. 21:09:21 doesn't everyone do "f . g $ x" instead of "f $ g $ x"? 21:09:24 the latter is kinda perverse 21:09:26 maybe cale started that 21:09:37 if people do that, $ becomes more useful as infixl 21:09:50 elliott: yeah i guess he's been championing it for a while 21:10:06 elliott, very nice theory about runtime 21:10:10 f.g x means f (g x) correct? 21:10:17 Lymia: no 21:10:18 f . (g x) 21:10:23 f.g$x means f (g x) 21:10:27 so does (f.g) x 21:10:30 Ah. 21:10:51 -!- impomatic has joined. 21:10:56 Lymia: f.g$x = f (g x) is not a parsing rule btw, it just follows from the definitions of . and $ 21:11:04 * Lymia makes a note to seriously learn Haskell 21:11:08 the latter is kinda perverse <-- why 21:11:21 aristid: Coding is fun. Being wrapped up in a puzzle that you're gradually solving is fun. Getting stuck is not. 21:11:22 Lack of puzzle (reduction of coding to data entry) is not fun. 21:11:22 Of course, I find that when I get unstuck is usually when I learn the most. 21:11:24 ezyang: full agreement 21:11:26 my theory, 'tis sparking of much discussion 21:11:29 Vorpal: because it's hideous 21:11:37 f . g . h $ x looks much better 21:11:42 and the $ serves as a visual indicator 21:11:48 "ok, enough stacking, we're applying now" 21:11:54 * oerjan is still wrapped up in minimal string puzzles, now trying squares... 21:12:03 oerjan: i should have said f.g $ x 21:12:07 f.g$x is unspeakably ugly :) 21:12:09 elliott, so purely aesthetical reasons then? 21:12:10 i gave up on the base 9 primes, it seemed to blow up 21:12:16 Vorpal: *aesthetic 21:12:28 Vorpal: if it wasn't for aesthetics, you could just write f (g (h x)). 21:12:35 -!- impomatic has quit (Client Quit). 21:12:37 elliott, hm isn't aesthetic the noun rather than the adjective? 21:12:51 nobody says it singular afaik 21:12:53 aesthetics is the noun 21:12:55 aesthetic is the adjective 21:12:59 elliott, ah 21:13:00 well 21:13:02 yeah 21:13:54 The noun aesthetic has 1 sense (no senses from tagged texts) 21:13:54 21:13:54 1. aesthetic, esthetic -- ((philosophy) a philosophical theory as to what is beautiful; "he despised the esthetic of minimalism") ← see, there. 21:14:04 (But it does list "aesthetic, esthetic, aesthetical, esthetical" as the adjective.) 21:14:09 Yes, that was the exception I was thinking of. 21:14:13 Aesthetical is ridiculous though. :p 21:14:22 Aisthetical. 21:14:36 elliott, it was a good try I think 21:14:52 Also anyone who says "esthetic*" is evil. 21:14:56 It's just ugly. 21:15:01 Unaesthetical, one might say. 21:15:21 elliott, funnily estetisk is the Swedish adjective 21:15:33 and the norwegian one 21:15:41 > ord '(' 21:15:42 40 21:15:43 > ord ')' 21:15:44 41 21:15:58 oerjan, isn't estetik the noun? 21:16:10 Vorpal: estetikk 21:16:17 oerjan, *not* kk in Swedish 21:16:30 oerjan, and I doubt it is ck 21:16:37 *Main> parse . map ord8 $ "(:aSS):aSS" 21:16:38 Chunk Duplicate (Chunk Enclose (Chunk Output (Chunk Output (Chunk (Push [Duplicate,Enclose,Output,Output]) (Chunk Duplicate (Chunk Enclose (Chunk Output (Chunk Output (End []))))))))) 21:16:38 gah! 21:16:40 that's not right 21:17:01 oh, duh 21:17:10 the structure, it is the wrongs! 21:17:12 Vorpal: well maybe you pronounce it with a long i? 21:17:22 oerjan, indeed I do 21:17:37 so it's logical in both languages 21:17:59 oerjan, yes indeed but more so in Swedish (as usual) ;P 21:18:08 * oerjan swats Vorpal -----### 21:18:15 Lysol: Actively evil, or just horribly misguided? 21:18:30 Gregor, who/what? 21:18:41 Somebody in the US: Lysol: Actively evil, or just horribly misguided? 21:18:51 Gregor: i thought you were saying Lymia for a moment there and wondered what the poor guy had done 21:19:24 Killed his FYB bot? 21:19:25 Dunno. 21:19:36 I should get to working on an evolver for BF Joust now. 21:19:40 This Lysol solution was also used as a birth control agent, as post-coital douching was a popular method of preventing pregnancy at that time. The use of Lysol was later discouraged by the medical community as it tended to eliminate the bacteria normal to the healthy vagina, thus allowing more robust, health-threatening bacteria to thrive, and may have masked more serious problems that certain odors in 21:19:40 dicated in the first place.[8] All the same, Joseph De Lee, a prominent American obstetrician who held great sway over American obstetric practice through his writings, encouraged the use of Lysol during labor. "...[J]ust before introducing the hand, the vagina is liberally flushed with 1 per cent lysol solution squeezed from pledgets of cotton, the idea being to reduce the amount of infections matter 21:19:41 Gregor: Merely misguided. 21:19:41 unavoidably carried into the puerperal wounds and up into the uterus by the manipulations." 21:19:46 Though it's doubtful Ic ould get anything on the hill. 21:19:47 Gregor: My googling gave me only this. 21:19:52 [[It has been reported that some alcoholics use some formulations of Lysol as a beverage for its alcohol content. In some jurisdictions laws have been passed prohibiting the sale of this and similar products to a person whom the seller believes is likely to use the product as a beverage.[11][12] 21:19:53 Lysol was also used for suicide purposes (for example, by Vachel Lindsay and Charlotte Mew).]] 21:20:01 Sounds like a ... great product :P 21:20:06 elliott: Lysol is *currently* commonly used as a disinfectant. Its history is fucking nuts. 21:20:20 Ah, household disinfectants. Also known as: the stupidest fucking idea ever. 21:20:27 Yes 21:20:41 LYSOL® Healthy Touch® No-Touch Hand Soap System 21:20:41 Never Touch a Germy Soap Pump Again 21:20:46 hmm 21:20:47 elliott: It's quite a bit better than household antibiotics, though. 21:20:48 Dettol has that 21:20:53 I bet Dettol is Lysol's UK brand. 21:21:00 yep 21:21:01 same company 21:21:03 same shit 21:21:07 DETTOL PROTECTS, FACT 21:21:15 elliott: At least Lysol won't start to induce resistant strains of bacteria. 21:21:18 * Sgeo still hasn't seen Ghostbusters 21:21:22 :D 21:21:43 'Dettol Man' cleans himself to death --El Reg 21:21:56 http://www.theregister.co.uk/2007/05/29/dettol_man/ 21:22:03 ... Oh, fuck. 21:22:07 ? 21:22:11 Lysol *does* produce resistant strains. 21:22:22 :DDDDD 21:22:28 Heh... This HOWTO is extremely old (but still may be relevant): It talks about 6bone (dead and gone a LONG time ago). 21:22:41 I just ate breakfast. I am now more hungry than before. 21:22:43 And even produces strains of bacteria resistant to antibiotics. 21:22:45 Please explain this. 21:23:05 THIS DOESN'T WORK probably because of RABIES 21:23:15 cause of all bugs 21:23:32 (studies have found that a less-than-lethal exposure to benzalkonium chloride, the active ingredient in Lysol, induces a resistance to ciproflaxin in bacteria *that had never before been exposed to ciproflaxin*) 21:23:57 Why can't they just freaking use alcohol? 21:24:25 http://en.wikipedia.org/wiki/Ptolemaic_dynasty#Simplified_Ptolemaic_family_tree 21:24:25 You're about as likely to get resistance to that as you are to get resistance to a freaking autoclave. 21:24:26 "Many of the relationships shown in this tree are controversial." 21:24:49 pikhq, aren't there some bacteria that are resistant? 21:25:10 Sgeo: Some bacteria can handle somewhat high concentrations of alcohol. 21:25:18 (see: yeast) 21:25:25 this is so broke that i think it might actually be a robot 21:25:26 (... yeast are fungi, though) 21:25:32 you're a fungi 21:25:56 pikhq, yes, but it can't deal with more than 14% concentrations. 21:26:00 elliott: It's quite a bit better than household antibiotics, though. <-- does US allow that? 21:26:12 I presume he means antibiotic soap, etc. 21:26:24 pikhq, you need prescription to get *any* antibiotics in Sweden 21:26:27 elliott, what? 21:26:30 Which is an epidemic in the UK here too. 21:26:34 Erm. 21:26:37 Antibacterial soap. 21:26:39 OK, he said antibiotic. 21:26:41 oh that 21:26:42 I have no idea what pikhq is referringt o. 21:26:47 Sorry, I meant antibacterial shit. 21:26:54 I presume Sweden has antibacterial soap :P 21:27:00 Which, btw, should be illegal. 21:27:09 Do antibacterial products allow for resistance? 21:27:12 Except in hospitals, I guess. 21:27:18 elliott: Some of those are actually using antibiotics that managed to get classed as antibacterials somehow. 21:27:25 -!- TLUL has changed nick to deadmau5_. 21:27:26 Though you can get *actual OTC antibiotics* here. 21:27:27 pikhq: *Ouch.* 21:27:31 elliott, I have no idea. Isn't all soap antibacterial in some sense, in that it removes bacterias... 21:27:32 *sigh* 21:27:38 You guys are gonna ruin things for the rest of us. 21:27:45 Vorpal: Antibacterial soap is any cleaning product to which active antibacterial ingredients have been added. These chemicals kill bacteria and microbes, but are no more effective at deactivating viruses than any other kind of soap or detergent, and they also kill nonpathogenic bacteria.[1] 21:27:47 pikhq, wait what? 21:27:56 Vorpal: Also: At one conference, Dr. Stuart Levy, a microbiologist at Tufts University, cites these studies to conclude: "Dousing everything we touch with antibacterial soaps and taking antibiotic medications at the first sign of a cold can upset the natural balance of microorganisms in and around us, leaving behind only the 'superbugs'."1 21:27:58 -!- deadmau5_ has changed nick to TLUL. 21:28:05 Note: This shit is incredibly popular in the UK! 21:28:07 We're all fucking fucked! 21:28:25 That plus antibiotics-because-I-sneezed, but that's more a US problem. 21:28:30 bah, what else is new.. the apocalypse will rinse us all away 21:28:42 Oh, and of course the morons who will stop taking antibiotics as soon as they feel better, even if they haven't finished the course. 21:28:51 Life is wasted on idiots. 21:28:55 elliott: There's also give-antibiotics-to-all-livestock. 21:29:01 pikhq: -__- 21:29:24 Which is actually made necessary by the *ridiculously* cramped and unsanitary conditions many livestock are raised in. 21:29:28 There's basically two methods of action for antimicrobials: 1) Those that have specific action (and resistance can develop). 2) Brute force agents that do heck a lot of damage to everything (unlikely to develop resistance). 21:29:32 > return () :: ((),()) 21:29:33 No instance for (GHC.Base.Monad ((,) ())) 21:29:33 arising from a use of `GHC.Bas... 21:29:37 hmm 21:29:43 oerjan: is ((,) t) not a monad? 21:30:21 hm... not sure, it's isomorphic to Writer 21:30:37 oerjan: oh, it's not, you can't do return 21:30:41 return x = (???,x) 21:30:53 elliott: it needs Monoid t 21:31:16 Ilari: The absurdly prevalent use of stuff that resistance can develop to *really* bothers me. 21:31:17 http://www.irregularwebcomic.net/2932.html 21:31:21 but () is a monoid... 21:31:25 oerjan: right 21:31:29 return x = (mzero, x) 21:31:30 > mempty :: () 21:31:30 Is this a subtle Casey & Andy tribute, or do I misremember? 21:31:30 () 21:31:40 Especially as it's really, really not hard to get the more brute-force antimicrobial agents. 21:31:40 (a,b) >>= f = f b 21:31:41 hmm 21:31:42 surely not 21:31:53 gotta be a better definition for >>= there 21:31:54 Surely (,) == Either. 21:31:54 oh wait 21:31:58 i'll try join instead 21:32:01 Phantom_Hoover: errrr... no 21:32:01 We've been making one such agent for 9,000 years now! 21:32:16 elliott, oh, yes. 21:32:23 oerjan: ok so join :: (t,(t,a)) -> (t,a) 21:32:28 (granted, you need to distill it to make it actually effective at sterilisation, but hey.) 21:32:30 elliott: (a,b) >>= f = first (a `mappend`) f b 21:32:35 oerjan: so it's either "join (a,(_,b)) = (a,b)" or "join (_,(a,b)) = (a,b)" 21:32:36 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 21:32:40 heh 21:32:40 er * $ 21:32:40 nice 21:32:49 oerjan: what's join with that definition? 21:32:49 Is this a subtle Casey & Andy tribute, or do I misremember? <-- to me it looks like a reference to Dr. Who and a reference to Back to the Future? 21:32:57 oerjan: join (a,(b,c)) = (a `mappend` b, c)? 21:33:02 Vorpal, I mean the "JURRRZ!". 21:33:16 Which IIRC was the C&A time travel noise. 21:33:17 Phantom_Hoover, oh. No idea. 21:33:32 Phantom_Hoover, haven't read/watched/heard of C&A 21:33:39 The stuff in 2) includes stuff that just plain dissolves cell membranes or attacks darn near everything inside the cell (and can penetrate cell membranes). 21:33:48 Phantom_Hoover: the jurrrz you mean? 21:33:53 oerjan, yes. 21:33:57 Ilari: Yup. 21:34:05 Ilari: For instance, ethanol. :) 21:34:08 Yeah, antibiotic resistance is a big problem. MRSA is bad enough. VRSA is even worse (thankfully rare). 21:34:28 Or soap (does nasty things to cell membranes). 21:34:36 tv tropes: [[All There In The Manual: Jenn's occupation was "international jewel thief", which you should have known if you had bought David Morgan-Mar's C&A GURPS module.]] 21:34:42 --[[CaseyAndAndey]] 21:34:44 (I haven't read the comic) 21:34:48 Ah, yeah, standard soap does that to an extent as well. 21:34:50 (but the mention of DMM's name makes me think it's likely to be a reference) 21:34:58 elliott, DMM was a big fan. 21:35:03 Surely (,) == Either. <-- no. 21:35:07 then it seems likely. 21:35:10 oerjan, I admitted that. 21:35:20 elliott, yes, but it might not have been "JURRRZ". 21:35:41 And of course there's the ever-popular bleach. 21:36:14 And then there's the whole "ok this is viral but let's just give you antibiotics as placebo / just to be sure". 21:36:17 oerjan: really I just want a monad that lets me handle "parser :: String -> ([Result], String)" nicely. 21:36:26 Ilari: Pisses me off even more. 21:36:37 oerjan: join (a,(b,c)) = (a `mappend` b, c)? <-- think so 21:36:42 oerjan: i.e. some way to write what amounts to "foo : parse xs" that's nicer than "(foo:ps, xs') where (ps,xs') = parse xs" 21:36:53 Every single time someone does that, antibiotics become less effective. 21:36:59 oerjan: would (foo :) <$> parse xs work maybe? 21:37:02 with (String, [Result]) 21:37:03 or something 21:37:15 Phantom_Hoover: i thought it looked like you denied it :D 21:37:23 Oh, and it isn't just doctors: "I feel better so let's save the rest for later". 21:38:04 Gaaaah. 21:38:15 Antibiotics really, really need to be strictly regulated. 21:38:27 Ilari: that's what i said before 21:38:37 elliott: why don't you just look at the Writer code :D 21:38:37 i'm not sure there's even a good solution to that 21:38:44 apart from instant death penalty if you're found doing that 21:39:05 oerjan: hm what would the type be for that? 21:39:07 i've never used writer :D 21:39:13 elliott: If caught, you are given a jail sentence for the duration of any future antibiotic treatments. 21:39:17 it _is_ (,) except for a strange wrapping 21:39:20 pikhq: *killed 21:39:25 elliott, are you going to read IWC any time soon? 21:39:40 :t Writer 21:39:41 Not in scope: data constructor `Writer' 21:39:41 Phantom_Hoover: I check it occasionally. Its entire archive is on the Fiction Backlog which pikhq knows all about. 21:39:45 :info Writer 21:39:46 :t runWriter 21:39:47 forall w a. Writer w a -> (a, w) 21:39:55 oerjan: ghci really needs some kind of :tellMeAbout 21:39:57 Aha, http://galactanet.com/comic/view.php?strip=660 21:39:59 elliott: The idea being that you are mother-fucking taking the whole course, and you are *not* leaving with any extras. 21:40:01 that works on types, classes, functions, constructors, ... 21:40:04 So it looks like it was indeed a tribute. 21:40:38 :t write 21:40:39 forall (a :: * -> * -> *) w. (ArrowWriter w a) => a w () 21:40:45 oerjan: really I just want a monad that lets me handle "parser :: String -> ([Result], String)" nicely. 21:40:46 oerjan: is that caleskell? 21:41:06 um is the last String supposed to be the remaining part of the argument? 21:41:09 oerjan: yes 21:41:15 oerjan: I realise that this is ReadS 21:41:22 but I don't think ReadS comes with convenient functions for the kind of thing i'm doing 21:41:25 because if so then what you have there is State String [Result] 21:41:28 also, String is actually [Word8] 21:41:30 oerjan: well yes... 21:41:32 oerjan: but that's so imperative 21:41:33 and ugly 21:41:34 and imperative 21:41:35 and ugly! 21:41:37 elliott, what is the Fiction Backlog? 21:41:44 Phantom_Hoover: My Backlog, of Fiction. 21:41:44 :t runStateT 21:41:45 forall s (m :: * -> *) a. StateT s m a -> s -> m (a, s) 21:42:03 oerjan: hm what would non-do-notation using State code look like? 21:42:44 quintopia: you win a prize 21:42:54 One good thing about MRSA is that the antibiotic those are mostly vulernable to is really nasty to use... 21:43:01 on 2007-11-15, you figured out what took #esoteric until 2010-01-22 21:43:24 http://fashionablygeek.com/t-shirts/dinosaurs-as-mammals-saviors-shirt/ 21:43:38 quintopia: and also, fixed it at the same time, whereas it took a famous member of #esoteric two months after my quoted date 21:43:42 This is the only amusing T-shirt I am actually tempted to buy. 21:43:59 -!- poiuy_qwert has joined. 21:44:02 Phantom_Hoover: Apart from every Dinosaur Comics tshirt? 21:44:06 elliott: ReadS has a list wrapper too, for possible nondeterminism 21:44:08 Wait, it doesn't credit SMBC for it! 21:44:12 THEY WILL PAY 21:44:13 oerjan: indeed 21:44:15 Phantom_Hoover: Apart from every Dinosaur Comics tshirt? 21:44:29 elliott, I have not actually read most of DC. 21:44:42 Phantom_Hoover: Nobody has, but that's okay, because it has NO CHRONOLOGY WHATSOEVER. 21:44:52 omg 21:44:52 omg 21:44:53 omg 21:44:54 http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=ASW-QW-IMNOT&Category_Code=QW 21:44:54 they made them 21:46:44 * Phantom_Hoover wonders if he should see if Dresden Codak has updated. 21:47:07 I DISTINCTLY RECALL EVERYONE COLLECTIVELY DECIDING THAT DRESDEN CODAK SHOULD SUCK A DICK 21:47:16 Updated Feb 1st, apparently. 21:47:24 It updates? 21:47:36 http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=BEAT-PONY-ONESIE&Category_Code=BEAT 21:47:37 OMG 21:48:04 Topatoco is pretty much the only thing anyone should ever buy products from. 21:48:04 (But still, MRSA is bad enough...) 21:48:17 Ilari, not as bad as Dresden Codak! 21:48:32 The only thing worse than Dresden Codak... is not the holocaust. It does in fact not exist. 21:48:35 INFINITE 21:48:36 WORSENESS 21:48:58 I WISH I COULD WEAR NOVELTY T-SHIRTS 21:49:04 BUT I WEAR A JUMPER LIKE ALL THE TIME 21:49:20 THAT IS BECAUSE YOU ARE SCOTTISH 21:49:39 Fun tactics from plant kingdom: Some plant uses 6(!) different toxins (all quite toxic to against the same things but via different mechanisms) as all at once defense... 21:49:48 http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=ASP-SCIENCEIS&Category_Code=ALLSHIRTS 21:50:12 Real nasty for those pests to develop resistance... 21:50:54 Phantom_Hoover: Perry Bible Fellowship hasn't been updated yet, SORRY TO RUIN YOUR DAY. 21:51:05 elliott, I DON'T READ IT FOR SOME REASON 21:51:11 Phantom_Hoover: what 21:51:13 I MEAN, I'VE ALREADY READ ALL OF THE COMICS 21:51:22 Phantom_Hoover: Well, it updates like once a year, so :P 21:51:23 BUT I DIDN'T KEEP FOLLOWING IT 21:51:33 From the creator of PBF: http://www.kickstarter.com/projects/2116548608/help-erase-the-national-debt-of-the-usa 21:51:36 BEST KICKSTARTER PROJECT EVER 21:51:39 $180 21:51:39 PLEDGED OF $21,474,836 GOAL 21:51:44 http://www.kickstarter.com/projects/2116548608/help-erase-the-national-debt-of-the-usa 21:51:51 "If we all got together we could remedy this problem. 21:51:51 NOTE: KICKSTARTER HAS A MAXIMUM GOAL OF $21,474,836.47. 21:51:51 THIS IS NOT MY GOAL. THE GOAL IS 15 TRILL." 21:51:52 Goddam it. 21:51:57 BEST THING EVER 21:51:59 http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=RB-MAGNETS&Category_Code=RB 21:52:17 WANT 21:53:40 Phantom_Hoover: http://www.qwantz.com/adventures/ 21:55:28 ^ul (a 21:55:28 ...unterminated (! 21:55:32 !underload (a 21:55:37 yay? 21:55:39 Error: Expected ) at end of input 21:55:40 !underload (a)S 21:55:40 a 21:55:42 darn 21:56:53 *Main> eval . fst . parse . map ord8 $ "(:aSS):aSS" 21:56:53 :1:0: 21:56:53 No instance for (Show (Stack -> EvalResult)) 21:56:57 oerjan: i totally agree, $ should be infixl 21:57:00 so i don't have to parenise :P 21:57:30 Phantom_Hoover: Buy this: http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=SMBC-DANGEROUS&Category_Code=SMBC-SHIRTS 21:57:39 It would be better without the caption, though. 21:58:03 elliott, but it makes more sense with the caption! 21:58:12 IT IS NOT TO MAKE SENSE IT IS TO FEEL SMUG AND HIP 22:01:08 HOW CAN I DO THAT WHEN I AM WEARING A JUMPER OVER IT 22:01:57 oh shit, i need bytestring 22:03:11 http://i.imgur.com/lO9OV.jpg 22:03:34 My inner Scot is asking why England, Ireland and Wales all get included on that. 22:05:44 It's a conspirac. 22:05:47 *conspiracy. 22:05:55 I thought they had cut you short. 22:05:57 hahahahaha scotland isn't on there 22:05:57 :D 22:06:12 But yes, this is just ANOTHER EPISODE of the CAMPAIGN OF OPPRESSION from Westminster. 22:06:28 (Yes, Westminster made that image.) 22:06:48 :D 22:07:17 that is a completely uninteresting question. 22:07:24 oerjan: what is 22:07:31 oerjan, AHA 22:07:32 oh, did Sgeo say something. 22:07:33 the important question is WHY IS THERE A SWEDE BUT NO NORWEGIAN 22:07:34 Phantom_Hoover: QUICK! Note how awesome the Burro 2.0 specification is! http://catseye.tc/projects/burro/doc/burro.html 22:07:36 oh 22:07:54 oerjan, CLEARLY THE SAME PEOPLE ARE KEEPING US DOWN 22:07:57 Phantom_Hoover: THE SPECIFICATION IS EXECUTABLE SEMANTICS IN THE FORM OF LITERATE HASKELL, THAT ALSO SERVES AS THE REFERENCE INTERPRETER 22:08:02 JOIN ME, BROTHER 22:08:19 DUDE 22:08:20 ADMIRE 22:08:20 THE 22:08:21 AWESOME 22:08:31 elliott, yesyesyes. 22:08:35 NO WRONG 22:08:36 *TOTAL 22:08:38 AWESOME 22:08:50 THE OPERATIVE ISSUE IS THE WESTMINSTER/STOCKHOLM CONSPIRACY 22:09:25 elliott: todays nedroid is so you 22:09:44 nedroid is always e 22:09:44 *me 22:09:52 yes but today its especially you 22:09:57 * augur hugs elliottato 22:10:40 meanwhile, in the realm of scary functions: 22:10:42 fixIO :: (a -> IO a) -> IO a 22:11:06 mm, fixIO 22:11:23 oerjan: HOW IS THAT MM :D 22:11:25 How does that... 22:11:25 thats an a-in-IO-a continuation, surely! 22:12:08 I mean, surely it would need typeclass constraints... 22:12:16 :t fixIO 22:12:17 Not in scope: `fixIO' 22:12:31 um 22:12:40 :t mfix 22:12:41 forall a (m :: * -> *). (MonadFix m) => (a -> m a) -> m a 22:12:59 i think fixIO is the IO case of that 22:15:36 elliott: also: see Malbolge Unshackled implementation. 22:15:43 http://i.imgur.com/bIooj.png 22:15:46 I don't get it. 22:15:58 oerjan: right 22:16:04 Phantom_Hoover: -minecraft 22:16:09 Oh, yes. 22:16:12 what 22:16:30 Phantom_Hoover: that's fun, take a random image and paint a big circle and HOW?!? somewhere 22:16:42 :D 22:16:43 omg 22:16:44 best trolling method 22:16:46 elliott, am I on ignore? 22:16:48 yep, a variant of the "when you see it" troll 22:17:37 http://www.youtube.com/watch?v=C8Wu3Bps9ic <-- this is Vorpal 22:17:54 Gregor: I have already said that :P 22:18:02 olsner linked to one of those and I said that I bet Vorpal is like that in real life. 22:18:04 So's your face. 22:18:07 IRC is the only place where he can seem calm and relaxed. 22:18:15 It's therapeutic for him. 22:18:38 outbursts are the key to staying calm 22:18:48 Serenity Now? 22:19:10 SERENITY NOOOOOOOOOOOOOOOW! 22:19:16 add the spices! GRRRR! 22:19:18 :t mfix \v -> do r1 <- newIORef ("boo!":v); readIORef r1 22:19:18 parse error on input `\' 22:19:28 :t mfix $ \v -> do r1 <- newIORef ("boo!":v); readIORef r1 22:19:29 Not in scope: `newIORef' 22:19:29 Not in scope: `readIORef' 22:19:35 Gregor. 22:19:36 fff 22:19:49 he actually did that line in english... still don't know if it's supposed to be in english or swedish 22:19:52 What is egojoust's return value? 22:20:03 :t mfix $ \v -> do r1 <- Data.IORef.newIORef ("boo!":v); Data.IORef.readIORef r1 22:20:04 IO [[Char]] 22:20:07 Lymia: Idonno :P 22:20:25 Gregor, it'd be useful to know, as I intend on invoking it as an external program. 22:20:25 =p 22:20:32 That's how it works. 22:20:35 So its return value is useful. 22:20:39 But that doesn't mean I recall what it is. 22:20:40 http://www.youtube.com/watch?v=C8Wu3Bps9ic <-- this is Vorpal ← SEE THE BRUTALITY THAT STOCKMINSTER ENTAILS 22:20:41 Look at report.c 22:20:52 stockminster? 22:21:22 olsner: the Westminster-Stockholm Conspiracy 22:21:29 dedicated to destroying Scots and Nords worldwide 22:21:31 yes, Nords is now a word 22:21:54 actually, I think vorpal is the "retarded team member" to the left 22:21:57 nords and greeks 22:22:17 oerjan, AHA, SO IT IS STOCKMINSTEROME 22:23:07 `addquote actually, I think vorpal is the "retarded team member" to the left 22:23:18 293) actually, I think vorpal is the "retarded team member" to the left 22:23:35 HE IS ONLY PLAYING THE FOOL 22:26:15 hey you 22:26:26 Vorpal, SHUT UP FASCIST 22:26:40 MEL GIBSON^W^WWILLIAM WALLACE DIED FIGHTING YOUR KIND 22:26:59 @pl x >> return y 22:26:59 x >> return y 22:27:00 `ul (elliott are you ignoring me?)S 22:27:01 No output. 22:27:03 :t (>>) 22:27:04 forall (m :: * -> *) a b. (Monad m) => m a -> m b -> m b 22:27:07 @hoogle m a -> b -> m b 22:27:08 Sgeo, yes, yes is. 22:27:08 Control.Applicative (<$) :: Functor f => a -> f b -> f a 22:27:08 Control.Applicative (*>) :: Applicative f => f a -> f b -> f b 22:27:08 Prelude (>>) :: Monad m => m a -> m b -> m b 22:27:19 :t (*>) 22:27:20 forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f b 22:27:20 *yes he is 22:28:05 yay it works 22:28:07 kind of 22:28:10 :t ($>) 22:28:11 Not in scope: `$>' 22:28:12 :t (>$) 22:28:13 Not in scope: `>$' 22:28:16 :( 22:28:18 Phantom_Hoover, that "http://www.youtube.com/watch?v=C8Wu3Bps9ic" is like cook going berserk or something 22:28:19 :D 22:28:28 no, it's regular ordinary Swedish meal time 22:28:31 can't you read? 22:28:48 elliott, well, could be in North Sweden maybe. 22:28:59 Vorpal, it is a SATIRE of how you treat SCOTS, NORWEGIANS AND GREEKS 22:29:00 elliott, we are far more begin in the southern parts 22:29:04 Vorpal: Shut up, instrument of the Westminster-Stockholm conspiracy. 22:29:08 That's what you'd _want_ us to think. 22:29:18 elliott, it includes Rome as well. 22:29:34 Vorpal: Shut up, instrument of the Westminster-Stockholm-Rome conspiracy. 22:29:35 That's what you'd _want_ us to think. 22:29:44 Phantom_Hoover, heh 22:30:04 Vorpal, STOP TREATING US LIKE MEATBALLS 22:30:09 FFS 22:30:13 :t runRWS 22:30:14 forall r w s a. RWS r w s a -> r -> s -> (a, s, w) 22:30:14 THEY HAVE UZBEK 22:30:24 NOÖNE HAS EVER HEARD OF UZBEKISTAN 22:30:29 EVEN HASKELL IS TOUCHED BY THE CONSPIRACY 22:30:34 IT'S DOUBLE LANDLOCKED FOR CHRIST'S SAKE 22:30:45 oerjan: wat 22:31:09 elliott, run Rome Westminster Stockholm. 22:31:14 elliott: the Rome-Westminster-Stockholm conspiracy, it's plain to see 22:31:18 BUT OF COURSE YOU'D BE SCEPTICAL 22:31:24 YOU ARE PART OF THE CONSPIRACY 22:31:24 Phantom_Hoover, my favourite bit was "skål" in milk! 22:31:28 so weird 22:32:11 Are AHA and ADA just plain clueless or is there something worse going on? :-/ 22:32:12 Phantom_Hoover: um wasn't uzbekistan on borat or something 22:32:17 oh my, pitepalt next time they said at the end 22:32:27 oerjan, that was Kazakhstan. 22:32:31 the perils of lazy IO: 22:32:33 elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ ./underload 22:32:33 (:aSS):aSS 22:32:33 [Invalid program] 22:32:33 (:aSS):aSS 22:32:44 first line is input 22:32:46 Phantom_Hoover: no, i mean the neighboring country he hated 22:32:50 NOÖNE HAS EVER HEARD OF UZBEKISTAN <-- uh yes? 22:32:56 NO 22:32:56 I don't know where it is exactly 22:32:57 NOBODY 22:32:59 somewhere in Asia 22:33:01 that is all 22:33:08 Vorpal, it's DOUBLE LANDLOCKED 22:33:18 Phantom_Hoover, okay that have to hurt 22:33:18 DO YOU KNOW WHAT THE OTHER DOUBLE LANDLOCKED COUNTRY IS 22:33:25 I KNOW 22:33:28 Phantom_Hoover, nope 22:33:34 * oerjan reads xkcd 22:33:44 Phantom_Hoover, Switzerland have to be single-landlocked only 22:33:44 hm 22:33:46 so no idea 22:33:52 hm how strange 22:33:59 I have noooo idea why that is happening. 22:34:07 @hoogle Handle -> IO String 22:34:07 System.IO hGetContents :: Handle -> IO String 22:34:07 System.IO hGetLine :: Handle -> IO String 22:34:07 System.IO hShow :: Handle -> IO String 22:34:07 Phantom_Hoover or oerjan: tell me then 22:34:16 I WANT A READ-WHOLE-FILE-STRICTLY DAMMIT 22:34:17 Vorpal, NO 22:34:23 Phantom_Hoover, why not 22:34:34 WE WILL NOT BOW TO YOU 22:34:43 YOU SWENGLITALIAN BASTARD 22:34:51 Phantom_Hoover, so you detest those who seek information? 22:35:05 Vorpal: lie?chtenstein 22:35:16 oerjan, ah 22:35:28 oerjan, I know of it. But where is it? Somewhere in Europe right? 22:35:40 right next to switzerland 22:35:44 ah 22:35:58 elliott: what were you talking about when you pinged me? 22:36:20 quintopia: http://forums.xkcd.com/viewtopic.php?f=12&t=14350&view=next 22:36:37 quintopia: ais only figured out that Burro disobeyed the laws in January 2010 22:36:44 quintopia: and it took another two months for cpressey to fix it and release version 2 22:36:50 ah 22:36:53 but you found out about the problem and solved it two weeks after the language came out :D 22:37:01 and thus over two years before we figured it out 22:37:17 "Neat. 22:37:17 I found his email address: cpressey[at]gmail[dot]com" 22:37:20 makes you wish i IRCed back then eh? 22:37:20 Now why would anyone poste that. 22:37:47 not really, your solution is way less elegant than burro 2.0 :D 22:37:54 i agree 22:38:26 quintopia, is that a picture of you as that icon? 22:39:25 oerjan: thought you might like to know: your look and say doesn't work in my reference interpreter 22:39:30 no idea why :D 22:39:49 hm looks to be an evaluation error 22:39:50 it parses fine 22:40:03 oh 22:40:04 lol 22:40:07 Vorpal: it's my self-portrait 22:40:08 I don't parse ! 22:40:15 quintopia, nice 22:40:23 quintopia, you paint? 22:40:27 in fact my spec completely lacks ! 22:40:28 :D 22:40:39 elliott, what does ! do now again 22:40:44 -!- zzo38 has joined. 22:40:46 discard (pops) 22:40:48 aka drop 22:40:52 ah right 22:40:53 hello zzo38 22:41:06 Hello 22:41:09 Vorpal: i tried painting. i'm not very good at it. i'm decent at graphite though 22:42:26 it is interesting that in English "hello" is a greeting and "hey" is more of a call for attention. In Swedish the word "hallå" (close to "hello" in how it is pronounced) is either a greeting or a call for attention in the same way that "hey" is in English, but "hej" (pronounced almost exactly the same as "hey" in English) is only a greeting. 22:42:30 oerjan: erm how does your look-and-say output? 22:42:57 elliott: what 22:43:10 elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ ./underload foo 22:43:10 , , 22:43:12 one digit at a time, mostly 22:43:12 and then it hangs 22:43:17 Stack space overflow: current size 8388608 bytes. 22:43:18 Use `+RTS -Ksize -RTS' to increase it. 22:43:25 elliott: um the first output should be a digit 22:43:31 oerjan: WELP :D 22:43:49 elliott: i suggest testing simpler programs 22:44:01 indeed. 22:44:03 well (0)S works 22:44:17 ^ul (0)(1)!S 22:44:17 0 22:44:22 ^ul (0)(1)~!S 22:44:22 1 22:44:26 ^ul (0)(1)*S 22:44:26 01 22:44:35 *Main> run (map ord8 "(()(*))(~:^:S*a~^a~!~*~:(/)S^):^") 22:44:35 */*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/... 22:44:39 well that is NOT the fibonacci sequence :D 22:44:50 indeed 22:44:57 ^ul (()(*))(~:^:S*a~^a~!~*~:(/)S^):^") 22:44:57 */*/**/***/*****/********/*************/*********************/**********************************/*******************************************************/*****************************************************************************************/********************************************************************************* ...too much output! 22:45:07 hm yet the code seems absolutely fine 22:45:13 I do have a few kind of questions based on a few different things. 22:45:13 what's the thing that causes more *s to be added there 22:45:14 * or ^? 22:45:14 elliott: try each of the ones i pasted 22:45:36 oerjan: lol 22:45:39 (0)(1)* = 10 22:45:43 *(10) 22:45:53 oerjan: i like how fibonacci still ran like that, just went wrong 22:45:57 right that'd do it 22:46:01 hm... 22:46:14 011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010011001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110011010011001011010010 22:46:14 110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010011001011001101001011010011001011001101001100101^C1Interrupted. 22:46:16 ^ul (()(~*))(~:^:S~*a~^a~!~~*~:(/)S^):^") 22:46:16 ~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/ ...too much output! 22:46:18 looks like Thue-Morse to me! 22:46:23 :DDD 22:46:37 indeed 22:46:45 *Main> run . map ord8 $ "(12)S(*a(~:)~*^~):((1)S)~*~((2)S:*)~*:(~:()~)~*^(a(:^)*~a(*()~)~*^~^):^" 22:46:45 12[Invalid program] 22:46:46 lol 22:46:55 oerjan: wait was it thue-morse? 22:47:05 if so then thue-morse works with flipped *... 22:47:06 it looked like it 22:47:10 Do you know any DSPs that has Free assemblers and can emulate the GameBoy Advance audio and video (when the correct program is loaded into it), and can have programs loaded into it externally? What else should be good if it can have a program to output a Ogg Vorbis / Ogg Theora video to the television set, and emulate any other kind of audio/video too. 22:47:11 heh 22:47:26 elliott, that's not Thue-Morse. 22:47:33 $ ./underload rule110 22:47:33 [Invalid program] 22:47:33 aww 22:47:34 WAIT IS THAT A JOKE 22:47:56 elliott: HAVE YOU FIXED * YET 22:48:01 DOING SO 22:48:19 look and say works now 22:48:25 gets progressively slower ofc 22:48:41 ...but then faster again 22:48:42 how queer 22:48:52 yep, it's definitely going fast, slow, fast, slow 22:49:05 perhaps because of GC? 22:49:24 maybe 22:49:34 elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ time ./underload foo >bar 22:49:34 ^C 22:49:34 real0m18.222s 22:49:34 user0m17.910s 22:49:34 sys0m0.290s 22:49:35 elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ ls -lh bar 22:49:37 -rw-r--r-- 1 elliott elliott 60K 2011-02-05 23:07 bar 22:49:39 speedy :P 22:49:40 to be fair it flushes after every write 22:50:31 you could try enabling profiling 22:50:51 elliott: perhaps there is some laziness happening 22:51:01 or use ghc-core and meditate over the core output until you see it 22:51:09 oerjan: oh, it's totally lazy in pretty much every way 22:51:25 oerjan: remember, the aim is to be a _specification_ in a formal language (Haskell) 22:51:32 the fact that it doubles up as a correct reference implementation is a mere bonus 22:51:40 strictness annotations, therefore, are not appropriate 22:51:42 elliott: is the slowing down happening in any particular part of the output of a number? 22:52:03 oerjan: I could just give you the program and let you find out for yourself :P ... but no, it's between numbers 22:52:10 elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ time ./underload foo >bar 22:52:10 ^C 22:52:11 real1m5.714s 22:52:11 user1m2.550s 22:52:11 sys0m1.900s 22:52:11 elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ ls -lh bar 22:52:13 -rw-r--r-- 1 elliott elliott 86K 2011-02-05 23:09 bar 22:52:15 without flushing 22:52:17 so flushing isn't it :) 22:52:20 oerjan: it was, like 22:52:32 oerjan: prints numbers fast... starts slowing down (char-by-char slowdown) 22:52:33 neat, nasm comes with a macro package for using r0-r7 instead of the traditional register names 22:52:36 ...starts speeding up 22:52:37 FULL SPEED 22:52:40 very quickly, goes slow again 22:52:42 starts speeding up 22:52:43 FULL SPEED 22:52:43 etc. 22:52:52 olsner: hehe 22:53:29 elliott: digits 3 might be slower than digits 1, for example (they _are_ church numerals) 22:54:10 oerjan: indeed 22:54:21 (but I don 22:54:27 damn enter key 22:54:54 http://sprunge.us/UFKH the haskell part of the specification (note that concatenate, push, tos, sos aren't used, they're just there for illustration earlier on) 22:55:00 (but I don't think that makes much more sense unfortunately) 22:55:01 also I plan to clean this up a bit 22:55:14 olsner: it makes sense once you don't have to talk to the bios any more 22:55:53 divisions and multiplications put the results in registers 0 and 2? 22:56:38 I NEED INSPIRATION 22:56:42 Musically speaking 22:56:43 Gregor: wat 22:56:44 olsner: yep! 22:57:13 Welcome to x86! 22:57:15 point is, it's all arbitrary regardless of it's an arbitrary letter or an arbitrary number 22:57:18 HEY CHANNEL PEOPLE 22:57:20 Give me inspiration 22:57:24 GIVE IT TO ME 22:57:27 and some of the letters actually correspond to sensible mnemonics 22:57:28 OR I WILL TAKE IT BY FORCE 22:57:39 Gregor, a language where you can only write programs by accident. 22:57:42 Gregor: opus 13 + superturing remix = ? 22:57:44 Like, if you try, it won't work. 22:57:50 Phantom_Hoover: "musically speaking" 22:57:51 Phantom_Hoover: " Musically speaking" 22:57:58 elliott: Phail 22:58:05 Gregor: it would be amazing 22:58:08 just mix opus 13 into superturing 22:58:13 Gregor, you should totally do that though. 22:58:19 >_< 22:58:22 OK, a piece you can only appreciate by accident. 22:58:23 I need to ask on a different channel. 22:58:38 Gregor: Make the world's most stunning Fugue program. 22:59:43 http://buttersafe.com/2011/01/20/moths-to-a-flame/ 22:59:46 XD 22:59:52 Buttersafe++ 22:59:53 Yes it has to be a music 1 year long and also a good program that does a lot of things and it has to be a good music that can win the music contest, too. 23:00:17 Gregor: On second thoughts, yeah, ask a different channel. 23:01:41 Now I am glad I looked at Dresden Codak, because there's an SMBC guest strip. 23:01:54 oerjan 23:01:59 why are ducks? 23:02:00 Phantom_Hoover, link? 23:02:07 that's my question 23:02:07 for you 23:02:08 Vorpal, NO 23:02:09 Do you have idea what kind of commands and things might be useful added in Plain TeXnicard? http://repo.or.cz/w/TeXnicard.git/blob_plain/HEAD:/system/plain.cards 23:02:09 if you are cool 23:02:10 enough 23:02:16 Phantom_Hoover, why not 23:02:16 STOP REPRESSING ME AND THEN WE'LL TALK 23:02:17 ... 23:02:25 Phantom_Hoover, when did I ever repress you? 23:02:41 Vorpal, SEE 23:02:43 REPRESSION 23:03:02 uh what 23:03:20 RWS RWS RWS 23:03:28 Phantom_Hoover, which meaning of repression here 23:03:38 are we talking about social repression or memory repression 23:03:38 I'm going to do something no man has ever attempted before. 23:03:41 I assumed the former 23:03:59 elliott, write unlambda on toilet paper? 23:04:06 COMPILE TEXNICARD 23:04:12 Hey zzo38, your compile script has an error. 23:04:14 elliott, oh. 23:04:18 elliott: What is the error? 23:04:20 It should say "#!/usr/bin/env bash", not "#!/bin/bash". 23:04:26 The latter won't work if bash is not in /bin. 23:04:33 The former will work as long as bash is on the $PATH which it will be. 23:04:37 elliott, why do you assume /usr/bin/env? 23:04:53 -!- oerjan has quit (Quit: Good night). 23:05:02 elliott: OK I will fix that, but now I have to leave. This time you can just change it yourself. 23:05:03 -!- zzo38 has quit (Remote host closed the connection). 23:07:23 elliott, re your catbus question, it seems logical that they should be linked cyclically. 23:07:39 Phantom_Hoover: Ah. Quite possibly. 23:09:34 Phantom_Hoover: Still... 23:09:43 elliott, what? 23:09:55 Phantom_Hoover: It seems like my interpretation might be more useful somehow. 23:10:03 What's yours? 23:11:00 Phantom_Hoover: See the talk page. 23:11:09 -!- cheater00 has quit (Ping timeout: 240 seconds). 23:11:25 Phantom_Hoover: i.e. each pair of two programs' stdout is combined and sent to the remaining program. 23:11:42 For four programs, it would be: each length-3 list of unique programs' stdout is combined and sent to the remaining program. 23:11:42 Hmm. 23:12:02 -!- cheater00 has joined. 23:12:12 That wouldn't make much sense unless every program had basically the same output format. 23:13:23 -!- elliott has left (?). 23:13:25 -!- elliott has joined. 23:13:27 Phantom_Hoover: Well, sure. 23:14:27 -!- elliott has quit (Remote host closed the connection). 23:14:32 -!- elliott has joined. 23:15:36 http://www.reddit.com/r/mathematics 23:15:41 I SUPPOSE I EXPECTED TOO MUCH 23:17:29 http://www.reddit.com/r/mathematics/comments/d782f/reddit_have_i_done_this_wrong_if_you_think_so/ 23:17:42 I want to be contemptuous sooooo much, but I can't bring myself to. 23:19:42 Phantom_Hoover: */r/math 23:19:44 si the real subreddit 23:19:49 Ah, that explains it. 23:19:54 GODDAMN AMERICANS 23:20:02 /r/math has plenty of stupid though 23:20:19 y = 14/2 + 1/x => y = -2+x, wtf? 23:20:24 Someone's mind is blown by Weirstrass functions. 23:20:29 What. 23:21:13 they like 23:21:13 strass 23:21:14 my weir 23:21:17 *weier 23:22:01 FAIR ENOUGH 23:23:26 * Phantom_Hoover → sleep 23:23:28 -!- Phantom_Hoover has quit (Quit: Leaving). 23:24:21 http://senseis.xmp.net/?Yahoo 23:24:23 oops 23:24:30 2y = -4+X 23:24:31 y = 14/2 + 1/X 23:24:32 WTF? 23:25:09 Oh, olsner already commented 23:25:47 -!- MigoMipo has quit (Remote host closed the connection). 23:26:52 "I'm not sure what to do with half an x." 23:28:03 olsner: wat 23:28:17 elliott: comment on the same reddit page 23:28:25 ah :D 23:34:22 Guesses what could cause current obesity/diabetes epidemic (might be none of these, might be multiple in combination): Fructose, Plant polyunsaturated fats, gluten, WGA, goitrogens, micronutrient defiencies, protein defiencies, fat defiency, lack of sleep, chronic stress, messed up excercise habits, ... 23:34:37 (as said, nobody really knows) 23:35:04 Ilari: I know 23:37:46 And that list is after dropping things like (because they don't seem to be possible causes) saturated fat (or "solid fats") or fast carbohydrates (yes, most of those are total garbage, but probably not because of their high GI).... 23:38:38 BTW: Ever heard of French paradox and Israeli paradox? :-) 23:42:23 Somehow I get the feeling polyunsaturated fats act more like micronutrients than macronutrients... The requirements are greater than anything traditionally considered micronutrient, but also the amounts required are much less than the stuffs primarily used for energy... 23:42:36 man, this is hard 23:42:57 And the intake ranges are relatively narrow... 23:43:06 aha, i think i can avoid pipes 23:43:07 maybe 23:45:45 hmm 23:45:59 how can I cause fd 7 (say) in a parent process be the fd 0 of a child process? 23:46:01 do I need a pipe? 23:46:10 or can i do it with dupfd/fcntl? 23:47:46 I think you use dup (dup2?) to do stuff like that 23:47:59 common thing to do I think 23:48:36 -!- Sgeo_ has joined. 23:48:42 i.e. set up some pipes in parent, fork, swizzle the file descriptors around to make it stdin/out/err, exec 23:50:14 -!- augur has quit (Remote host closed the connection). 23:50:46 olsner: yeees, but 23:50:52 olsner: dup operates inside the child process 23:50:58 I don't see how I can dup from child process to parent 23:51:07 or are fds shared from child and parent? at least, 0,1,2 aren't 23:51:08 -!- Sgeo has quit (Ping timeout: 240 seconds). 23:51:16 Life sucks- I just learned about EBNF after inventing SynDev. Just wanted to let the IRC world know of my random development! 23:51:30 elliott: yes, when you fork you share fd's 23:51:49 iconmaster: wait, you didn't know about EBNF? :D 23:52:03 how did you think parsers were written? by hand? 23:52:05 (ok, some are) 23:52:08 at least normally, there are likely weird flags and shenanigans all over 23:52:13 elliott: nope, just found out from a friend a few mins ago. LOL. 23:52:18 iconmaster: bahaha :) 23:52:20 iconmaster: but hey 23:52:51 iconmaster: this means you're as smart as John Backus, Peter Naur and Niklaus Wirth put together 23:53:02 (Wirth created EBNF based on BNF (arguably) by Backus and Naur) 23:53:31 iconmaster: I'd be proud of how comprehensive your lang is in comparison 23:53:37 elliott: lol, RLY? I only assume that SynDev can describe things with equivalent power of EBNF, idk. 23:53:42 (when I saw it I thought "hang on, this is just EBNF, how is this esoteric?" :)) 23:53:54 iconmaster: pretty sure it can, yes 23:54:05 you have alternation and constants, that's all you really need 23:54:08 elliott: cool. Life sucks less now. 23:54:15 that's the spirit! 23:54:20 now go accidentally reinvent something else 23:54:41 ok, how about.... Minsky machines! Wait, I already know about those.... 23:54:49 olsner: ugh, this is complicated (catbus that is) 23:54:57 maybe I'll just support two processes to start with 23:55:06 catbus? 23:55:39 I'm bored... I think i'll implement Underload... In LUA! See you guys later. 23:56:27 iconmaster: lol, we've been on quite the underload kick lately 23:56:29 seems pretty trivial, dup2 allows you to duplicate any open file descriptor to a given number you want such as 0/1/2 23:56:42 olsner: well sure 23:56:54 olsner: just need to get my head around dup and dup2 first :P 23:56:55 elliott: Ya, i know, ive been reading board for about a few hours 23:57:00 iconmaster: hehe 23:57:03 -!- cheater00 has quit (Read error: Connection reset by peer). 23:57:13 -!- cheater- has joined. 23:57:28 olsner: anyway, if that "catbus?" was an actual question - the ultimate Unix pipe-fitting tool 23:57:39 dup always gives you a new previously unassigned fd so not entirely useful if you want to e.g. redirect stdout 23:57:55 it connects the stdin of the first process to the stdout of the last, the stdout of the first process to the stdin of the second, ... 23:58:02 i.e. a circular loop of connections 23:58:15 olsner: indeed, but I think I have to do it in two parts 23:58:26 olsner: dup2(64, 0) in one 23:58:28 then in another 23:58:36 dup2(1, 64) 23:58:40 create all the pipes, create all the children, hook each child up to the right end of the right pipe, make each child exec its process? 23:58:43 that way, in the latter process, output goes to the input of the second 23:58:47 olsner: ok, so I _do_ need pipes 23:59:13 -!- FireFly has quit (Quit: swatted to death).