00:01:12 apt-comparison ghc gcc 00:01:39 LT 00:02:00 [[ 00:02:01 reddit.com 0x10c: this reddit has been banned 00:02:01 »ehird (1834 · 7323)||mod messages|preferences||logout 00:02:01 this reddit has been banned 00:02:01 most likely this was done automatically by our spam filtering program. the program is still learning, and may even have some bugs, so if you feel the ban was a mistake, please submit a link to our request a reddit listing and be sure to include the exact name of the reddit. 00:02:03 ]] 00:02:05 I COULD HAVE BEEN SO FAMOUS 00:02:39 RocketJSquirrel: What's the second-best US state? 00:03:00 elliott: Stop abusing the bot. 00:03:02 Bot abuser. 00:04:17 shachaf: Why does everybody hate point-free? 00:04:18 elliott: Washington 00:04:28 -!- augur has joined. 00:04:29 elliott: Because it's the devil? 00:04:36 RocketJSquirrel: Third-best??? 00:04:41 elliott: Canada. 00:05:03 -!- augur has quit (Remote host closed the connection). 00:05:33 Ah. 00:09:46 -!- cheater has quit (Ping timeout: 246 seconds). 00:19:38 RocketJSquirrel: "Tryon Creek is a 4.85-mile (7.81 km) tributary of the Willamette River in the U.S. state of Oregon." 00:19:40 Is this your doing? 00:20:14 ... no? I assume there's a joke or pun or something here, but I don't get it. 00:20:31 http://en.wikipedia.org/wiki/Main_Page 00:21:00 Oh, the fact that it's on the main page? Why would I have such authority? 00:21:20 It was a joke, because you had just been extolling the virtues of Oregon 00:21:23 *Oregon. 00:21:35 -!- augur has joined. 00:21:56 -!- augur has quit (Remote host closed the connection). 00:24:16 "However, on Twitter today, Notch announced that he’s registered the domain for the game, to be titled 0x10c. (Where that ‘c’ is in superscript.)" 00:24:34 Phantom_Hoover: I think you have to thank Notch for demonstrating that the world's journalists are too incompetent to figure out how to use superscripts. 00:24:51 0x10ĉ 00:24:54 Right? 00:25:00 Right. 00:25:34 0x1℃ 00:25:43 HELP 00:25:51 hi 00:26:01 hi monqy 00:27:12 -!- cheater has joined. 00:27:40 RocketJSquirrel: You get to debug my IRC bot! 00:27:59 elliott: I wrote an IRC bot today! 00:28:02 (echo "PASS $(cat esolang-bot-password)"; echo 'NICK esolang'; echo 'USER esolang 8 * :Esolang recent changes bot, see http://esolangs.org/'; echo 'JOIN #esoteric'; echo 'PRIVMSG #esoteric :a privmsg'; while true; do nc -u -l -p 8147 | sed 's/^/PRIVMSG #esoteric :/'; echo; echo; done) | cat -v | nc irc.freenode.net 6667 00:28:05 RocketJSquirrel: WHY DOESN'T THIS WORK 00:29:14 Because it's not multibot. 00:30:13 shachaf: is it a good bot 00:30:23 monqy: It's an evil bot. :-( 00:30:30 :( 00:30:58 "Me Bill" 00:31:00 -- Bill 00:32:07 http://www.youtube.com/watch?v=14xcsz43Kuw 00:32:36 RocketJSquirrel: Multibot am shit 00:32:39 Apparently "Bil". 00:32:40 "Me Bil" 00:32:42 -- Bil 00:33:12 shachaf: Man, I don't even remember this scene. 00:33:22 Actually, I don't even remember completing the Neverhood. Maybe I didn't. 00:33:35 elliott: What! 00:33:41 It's the best scene. 00:36:26 elliott: "deploy bear retrieval unit" 00:36:28 :-( 00:36:57 Damn, the only two superscript letters in Unicode are 'i' and 'n'. 00:37:50 still you can make many exciting superscript words 00:39:08 Like ⁱⁿ and ⁱⁿⁿ 00:39:15 Like ⁱⁿ and ⁱⁿⁿ 00:39:17 Er. 00:39:19 And ⁱⁿⁿⁿ 00:39:24 ⁱ 00:39:34 -!- augur has joined. 00:39:38 ⁱ am exciting 00:39:56 ⁿⁱⁿⁱ 00:40:07 moⁿqy 00:40:13 \ⁿ/ 00:40:15 shachaf: I watched that cutscene and now I have a sad. 00:40:18 moⁿqⁱ 00:40:20 It's your sad. I blame the sad on you. :'( 00:40:37 ⁿoⁿqⁱ 00:40:40 elliott: :-( 00:41:06 elliott: The only solution is more sad videos. 00:41:49 @time 00:41:51 -!- augur has quit (Remote host closed the connection). 00:41:53 Phantom_Hoover: What time is it in Canada? 00:42:41 ⁱⁿ Canada 00:42:47 ⁱⁿ Caⁿada 00:43:04 monqy: Don't you mean: ⁿⁿoⁿqy 00:43:20 do I? 00:43:26 o~o 00:43:29 do ⁱ? 00:44:40 elliott: You should play the Neverhood. 00:44:51 I've played the Neverhood, dude. 00:45:01 You should complete the Neverhood. 00:45:57 -!- NihilistDandy has joined. 00:46:23 I might have. My memory is notoriously aardvark. 00:47:17 shachaf: Write my MediaWiki extension for me. 00:47:25 elliott: Done. 00:47:46 Thanks. 00:47:51 elliott: I wrote it in bash and all it does is print "hi monqy". 00:48:00 Thanks. 00:48:13 #!/bin/bash 00:48:15 echo hi monqy 00:48:18 hi monqy 00:48:22 hi shachaf 00:49:27 01704 # Special case optimisation 00:49:30 YOU'RE A SPECIAL CASE OPTIMISATION 00:50:05 01704 TAGALOG LETTER GA [ᜄ] 00:50:11 01033 wfRunHooks( 'UserLoadFromDatabase', array( $this, &$s ) ); 00:50:12 thankse 00:50:15 YOU'RE A TAGALOG LETTER GA 00:50:33 01033 MYANMAR VOWEL SIGN MON II [ဳ] 00:50:51 MON II: THE ENMONNENING 00:53:58 This is annoying. 00:55:23 shachaf: Fix my code. 00:58:28 Unicode calls it "Myanmar" and not "Burmese"?? 00:59:48 kmc: probably for "neutrality" 01:01:15 er, why would one or the other be neutral? 01:01:33 that's why i put it in scare quotes :P 01:01:37 each term will be seen by some as implicitly supporting or rejecting the junta government 01:01:57 "myanmar" is the official name according to the country's present rulers, so maybe that's what they go on 01:02:04 yeah, that's what i meant 01:02:04 but what about languages used in more than one country 01:02:23 implicitly accepting the official name probably seemed less of a political move than going against it, even if they both have connotations in reality 01:02:30 apparently the UN call it Myanmar 01:05:00 mediawiki really dosen't like having lowercase usernames 01:05:16 -!- azaq23 has quit (Quit: Leaving.). 01:06:29 yeah 01:07:05 kmc: train expert, mediawiki expert 01:08:22 the UN has more direct need to appease the present government of MyanBurma as opposed to historical or linguistic concerns 01:08:27 see also: FYROM 01:18:44 -!- MDude has quit (Ping timeout: 276 seconds). 01:19:41 more like firey ROM am i 'correct' 01:24:16 lambdabot: is elliott 'correct' 01:24:19 -!- zzo38 has joined. 01:25:44 -!- augur has joined. 01:26:43 -!- augur has quit (Remote host closed the connection). 01:27:38 -!- augur has joined. 01:28:29 i might be wrong 01:38:24 The dvi-processing package I send doesn't work so hopefully this time I will fix it. 01:39:23 elliott 01:43:07 -!- lambdabot has quit (Remote host closed the connection). 01:46:55 -!- lambdabot has joined. 01:52:58 -!- NihilistDandy has quit. 02:09:48 ⁱRuh roh. 02:10:01 Ruh roh, I had Unicode on my buffer! 02:10:05 But more to the point, 02:10:21 Ruh roh, my nasty zombifoot picture is now in my Google Images results ... 02:14:54 X-D 02:15:11 RocketJSquirrel: Take it down and I'll kill you. 02:17:40 -!- cheater has quit (Ping timeout: 240 seconds). 02:27:43 kmc: You always talk about how annoying it is that you can't get various simple data structures as part of the C standard library, right? 02:30:22 yes 02:30:45 Do you have a simple solution to that problem? :-( 02:31:43 The simplest thing that comes to mind for some use cases is "use C++", since it has a pretty good C FFI and all. 02:32:59 my solution is usually "think about the problem really hard until you don't need as many datastructures" 02:33:31 sometimes you can use the pitiful builtin stuff like qsort, bsearch, hsearch, tsearch 02:33:37 Maybe that's the trick. 02:33:43 (actually i did not know about the last one until just now) 02:33:58 and i mean, there *are* data structure libraries for C, you just need to find them and figure out how to use and link and distribute them 02:34:03 The trick is to pretend malloc will kill you. 02:34:26 often the trick is to not care about performance until you need to 02:34:34 -!- itidus21 has joined. 02:34:48 like a problem I would do with an associative data structure in Haskell or Python, i will solve first with a linear search in C 02:34:58 * shachaf sighs. 02:35:05 because doing anything better is a pain, and it usually doesn't matter 02:35:18 and C code tends to run really fast to begin with 02:36:46 That's true... 02:36:53 * shachaf sighs again. 02:37:14 i see this a lot in Linux kernel and associated tools 02:37:25 which you may rest assured is written by C-loving Real Programmers 02:37:49 the Linux kernel did not even have a generic binary search function until recently 02:37:55 often the trick is to not care about performance until you need to 02:37:58 * elliott [snarks about C.] 02:38:00 every system that needed one would code their own 02:38:11 often they make the classic bsearch mistake 02:38:39 If the main reason I want to use C is that I'm calling C functions, maybe I should just use a higher-level language with an FFI. 02:38:42 bsearch is easy enough that most people won't believe you when you tell them people frequently screw it up 02:38:51 What's the classic bsearch mistake? 02:38:57 mid = (start+end)/2 02:39:00 overflow 02:39:12 shachaf, have you used Python's ctypes module? 02:39:14 Oh, that classic bsearch mistake. 02:39:19 Nope. 02:39:23 it's really slick 02:39:49 The problem with using C FFIs in higher-level languages is that you immediately want to make a higher-level interface to the C functions. 02:40:03 And you can spend any amount of time on that. 02:40:07 ctypes.CDLL("libc.so.6").printf("Hello, %s!\n", "world") 02:40:15 yeah 02:42:11 it doesn't have any typechecking, though 02:43:22 Haskell's FFI is also pretty nice. 02:43:35 But C-style code in Haskell looks really ugly next to Haskell-style code. 02:45:41 What's a reasonable way of running a system call with ptrace, by the way? 02:46:07 Maybe using the VDSO. 02:49:00 you mean, you want to attach to another process and force it to make a system call? 02:49:10 Right. 02:49:24 nelhage spend some time on that question for reptyr 02:49:39 WHen I did this before I just overwrote the instruction at ~%rip with the system call instruction. 02:49:47 But that doesn't seem very thread-safe, if nothing else. 02:50:00 shachaf: That's what weboflies does. 02:50:30 elliott: What's a Webo Flies? 02:50:32 i recommend doing whatever he does 02:50:37 unless it's obviously crazy 02:50:45 kmc: Is this general life advice or about ptrace in particular? 02:50:55 -!- Tod-Autojoined2 has changed nick to TodPunk. 02:50:55 You can arbitrarily modify its registers, can't you? So you should be able to essentially force it into a function call, and generate the function. 02:51:13 Why didn't kmc tell me about reptyr before now? 02:51:15 RocketJSquirrel: Right, but I don't want to just overwrite arbitrary memory that may be used by other threads. 02:51:23 elliott: Because you weren't in #haskell-blah. 02:51:30 shachaf: RocketJSquirrel means just set the stack pointer. 02:51:30 I'm pretty sure kmc told #-blah about reptyr a while ago. 02:51:32 I think. 02:51:42 shachaf: I think that's a net negative. 02:51:47 shachaf, some from column A, more from column B 02:51:48 shachaf: Just generate a function that does pushall, the syscall, popall, ret, spluf the stack pointer and IP to be in that function, and let it go. 02:51:57 What does the stack pointer have to do with it? 02:52:08 i think his approach involves waiting until the program does a syscall, and rewriting the args on the way 02:52:10 RocketJSquirrel: I don't need to push registers. I already know the debugee's registers. 02:52:16 Erm, not stack pointer. 02:52:26 and adjusting the saved PC so it hits the syscall instruction again 02:52:27 I'm just saying that RocketJSquirrel's solution means you can just allocate more memory. 02:52:30 kmc: Oh. That seems annoyingly complicated. 02:52:35 s/complicated/fragile/ 02:52:39 Not fragile. $ADJECTIVE 02:52:44 you can do multiple syscalls in a row this way, but you have to wait for the program to try to do one first 02:52:45 kmc: Can you tell that person who wrote reptyr I have a feature request? The feature request is that it should support migrating processes to other machines too. Thx 02:52:47 What if the program doesn't do any system calls? 02:52:50 Should be a weekend job 02:52:59 shachaf, it seems to me less fragile than other-modifying code 02:53:04 @google cryopid 02:53:06 http://cryopid.berlios.de/ 02:53:06 Title: CryoPID - A Process Freezer for Linux 02:53:06 shachaf: You're generating a function /for the guest/, which may or may not need to pushall depending on what the syscall code does. 02:53:16 if it doesn't do any system calls, then you need some additional hax 02:53:18 RocketJSquirrel: The question is where I write that function. 02:53:26 kmc: Right -- which is why I was thinking of using the VDSO. 02:53:37 istr his approach is more involved than what I just said, so you should read the reptyr code 02:53:37 shachaf: Admittedly I don't know the ptrace interface well enough to answer that. 02:53:52 But if you can allocate memory, there ya go. 02:53:54 well on x86-64 Linux the VDSO doesn't have an address for generic "jump here to make a syscall", iirc 02:53:57 Just handle that memory yourself. 02:54:09 Alternatively I could search the process's address space for a system call instruction, but I don't like that. 02:54:13 but there probably *is* a syscall instruction somewhere in the VDSO 02:54:18 kmc: All I need is a "syscall" or "inx $0x80" instruction. 02:54:21 right 02:54:33 Searching a few pages is better than searching the entire address space of the process. 02:54:47 shachaf: You don't know there'll be such an instruction! 02:54:50 What is shachaf doing, anyway? 02:55:10 elliott: Instructin'. 02:56:02 nelhage made reptyr portable? 02:56:09 He is clearly a better person than I am. 02:56:13 how portable are we talking 02:56:19 sez linux only on github 02:56:28 ARM and x86{32,64} 02:56:39 On Linux. 02:56:42 Not that portable, I guess. 02:56:45 But still. 02:57:06 there are at least two common ARM Linux syscall ABIs 02:57:22 but i suppose that's no worse than x86 02:58:02 shachaf, dude, did i tell you about the magical arm qemu schroot?? 02:58:14 I don't think so? 03:00:16 I think kmc is just making up words. 03:00:25 no this shit is fantastic 03:00:34 I was kidding. 03:00:39 shachaf: Wait, CryoPID works across machines? 03:00:41 How? 03:00:48 both that it works at all, and that it works as described out of the box without bullshit 03:00:56 sudo apt-get install ubuntu-dev-tools qemu-user-static; mk-sbuild --arch=armel precise; sudo schroot -c precise-armel-source 03:00:59 "Last updated: Wed, 23 Nov 2005 23:22:37 +0800" -- I guess you need a flexible definition of "works". 03:01:08 elliott: Doesn't it? Assuming the machines are similar enough. 03:01:19 elliott: The author is on IRC. I talked to them in #cryopid once! 03:02:18 Was that in 2005? 03:02:34 No, 2011. 03:03:15 shachaf, running this on amd64 linux gives you a chroot full of ARM Linux binaries (specifically, Ubuntu 12.04 for armel) which work fine and talk to the native OS/kernel 03:03:33 * shachaf is still in the downloading phase. 03:03:39 Wait, will this download all of Ubuntu? 03:04:10 yes, it will install ubuntu in a chroot (debootstrap-style) 03:04:48 qemu can do CPU emulation for a single process, while also translating the system call ABI 03:05:00 Oh, now I see what you mean. 03:05:01 so you can run an ARM Linux binary on amd64 Linux without emulating a whole ARM system 03:05:09 And it actually works? 03:05:12 yep 03:05:24 this also sets up a binfmt_misc handler so you can execve(2) ARM Linux binaries directly 03:05:41 and the handler is statically linked qemu-arm-static so it works even in the chroot, where ld-linux.so.3 is an ARM executable 03:06:21 and so it works like any other chroot 03:06:41 which led to a comment by me "ttants: halting a VM, halting a chroot" 03:06:51 ttants = Things That Are Not The Same 03:07:28 elliott, hey, what was NQwhatever trying to say when he wanted to be unbanned? 03:08:00 shachaf, schroot itself is also pretty nice 03:08:11 Sgeo: Huh? 03:08:18 Sgeo: He has never asked to be unblocked. 03:08:24 Indeed, he has never even acknowledged that he is blocked. 03:08:27 kmc: I'm still doing the apt-get. :-( 03:08:34 I don't got that kinda bandwidth, man. 03:08:37 it's a nice way to manage persistent ("-source") chroots and ephemeral copy-on-write sessions of those 03:08:45 elliott, he did in here, did you read logs? 03:08:49 it's what debian and ubuntu use for most (all?) of their package building 03:08:50 Well, talked about it 03:08:51 Sgeo: Oh. Please link me. 03:09:03 it can do the COW by various methods (aufs, lvm snapshot) 03:09:04 Never mind, I will search. 03:09:19 11:46:37: If anyone unblocks me I will work on UniCode, but unfortunately, nobody will. 03:09:21 but if you have enuf RAM, the best way is to store the source chroot as a tarball and untar it into a ramfs ;P 03:09:26 and it supports that too 03:09:26 I wonder if this is meant to make me *want* to unblock him. 03:09:33 because the sequential read on the tarball is fast 03:09:39 12:57:58: I'm only waiting for the time when I can ask an administrator to unblock me. 03:09:50 Sgeo: Well, I told him how to appeal his block (on his user talk page). 03:10:12 Sgeo: If he wants to do it on IRC, it'll have to be when I'm around. 03:10:20 I guess it's a bit much to ask someone to fit an entire debian install in RAM 03:17:22 *********************************************** 03:17:22 * Before continuing, you MUST restart your * 03:17:22 * session to gain "sbuild" group permissions! * 03:17:22 *********************************************** 03:17:55 Restarting my session is far too much of a hassle. 03:18:31 oh, i finally figured out a workaround 03:18:44 su - shachaf 03:18:56 Right, I just figured that out. 03:19:02 Actually I did sudo su - and then su - shachaf 03:19:03 or "ssh localhost" ;) 03:19:05 But I guess it works directly too. 03:19:06 heh 03:19:29 Why is that restriction, anyway? 03:19:36 For that matter, how do groups actually work in UNIX? 03:19:40 yeah i don't know 03:19:46 i think the answer to B will give you the answer to A 03:20:12 Presumably, yes. 03:20:13 the explanation i've heard is that "login" maps your alphanumeric username to a uid, and similarly it maps your set of group names to a set of gids 03:20:26 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds). 03:20:36 Groups are one of those weird things. Like how environment variables don't actually exist. 03:20:39 it's probably a good thing that the kernel is not reading /etc/groups on every file access 03:20:40 Right. So the kernel associates a set of gids with a particular process? 03:20:42 elliott, they don't? 03:20:50 kmc: Only when you start a new program! 03:20:54 The rest is, like, a libc illusion, man. 03:21:00 ah right 03:21:06 Hmm? 03:21:14 they exist as just some data on the stack 03:21:14 shachaf: Environment variables are just things you pass to exec. 03:21:21 The mutable environment you get in C is just managed by libc. 03:21:33 Oh, sure. 03:21:42 That's "existing" in my book. 03:21:51 $ cat /prof/self/environ 03:22:02 is that the environment as of execve 03:22:18 Should be. Kernel has no way of knowing anything else. 03:22:21 No, it's the contents of /prof/self/environ. 03:22:25 kmc: Looks like ptrace syscalls work the way you described, by the way. 03:22:32 What's that way? 03:22:43 Er, in reptyr. 03:22:47 By waiting for a syscall to happen. 03:23:28 shachaf: Just ask ais523 what Web o' Flies doe. 03:23:29 does. 03:23:31 Or I can check it for you. 03:23:35 Do you want me to check it for you? 03:23:43 What's Web o' Flies? 03:23:52 Web o' Flies is the most terrible program ever written. 03:23:56 It makes Linux deterministic in user-space. 03:24:05 That means it does its own scheduling, for one thing. 03:24:21 I don't think nelhage's solution will work that well for me. 03:24:39 OK, lemme figure out where weboflies.c is. 03:24:51 Hmm, maybe if I'm tracing a process from the beginning, I can just allocate a page for myself right as the program starts. 03:25:09 Maybe I should ask nelhage for his rationale. 03:25:12 Web o' Flies is the most *amazing* program ever written, you mean. 03:25:24 I imagine it's along the lines of "it was the simplest reasonably-elegant thing to do". 03:26:16 shachaf, https://github.com/torvalds/linux/blob/master/include/linux/cred.h#L31 https://github.com/torvalds/linux/blob/master/include/linux/cred.h#L150 03:27:30 elliott: DragonFly BSD will also do it. 03:28:12 kmc: Weird. 03:28:21 shachaf: What, process migration? Yeah, I know. 03:29:12 ais523: ping 03:29:30 so yeah, there's just an array of gids basically 03:29:47 'struct cred' is the struct that holds all the uid / euid / gid nonsense 03:29:59 it used to be part of the task struct but was factored out in 2.6.20something 03:29:59 Right. 03:30:06 I always thought of a user as being "in a" group. 03:30:28 i mostly know about it because of commit_creds(prepare_kernel_cred(NULL)) :D 03:30:43 (ah it was 2.6.29) 03:30:52 RocketJSquirrel: cping 03:30:54 RocketJSquirrel: ping 03:32:20 RocketJSquirrel: PANG YOU SDLJKF 03:32:21 sdf 03:32:23 jhij 03:32:24 hi 03:32:29 hi monqy 03:34:03 RocketJSquirrel: UR NOT SO ROKIT AFTERR ALL 03:35:00 Finding the VDSO involves parsing /proc/pid/maps, right? 03:37:37 I did read the IRC logs; Canada is different to United Kingdom (except the queen). 03:38:06 elliott: pong 03:38:28 ais523: how does weboflies force the running program to do a syscall? (does it ever?) 03:38:36 or, more generally, how does it force the running program to do anything :) 03:38:43 it only needs to do so when the running program's already doing a syscall 03:38:52 in which case it just rewinds the IP to just before the syscall so that it does another syscall 03:39:02 then it edits which syscall it is in memory 03:39:32 (strangely, it turns out that Linux's ABI actually requires it to be possible to repeat a syscall by rewinding the IP two bytes on x86, but just to be sure I check the asm to make sure that it's the asm for a syscall) 03:39:36 (well, the machine code) 03:40:08 shachaf: Hope that was unhelpful! 03:40:22 ais523: How would you make a ptrace-running program do a syscall if it isn't planning to? 03:40:25 You're an expert. 03:41:06 elliott: well, you need the program to be stopped to do anything, which requires the use of SIGTRAP, I guess 03:41:25 then you could rewind the IP two bytes, remember what those are, and replace them with a syscall instruction 03:41:34 then catch the syscall returning and put the bytes back to what they were 03:41:49 not entirely sure why you'd want to do that, but that's the easiest way I can think of 03:42:32 ais523: But threads. 03:42:35 Other threads might access that code. 03:43:08 hmm, right, I guess, you'd have to ptrace and stop them too 03:43:15 shachaf: HTH. 03:43:22 ais523: What if you don't want to stop them? 03:43:25 you can ptrace into threads by trapping the fork and clone syscalls 03:43:30 ais523: Could you allocate some memory to store some code in to set the IP to, perhaps? 03:43:49 well, that would require a syscall 03:43:58 Oh, wait, you wrote something in here. 03:44:00 so you'd have a bit of a chicken and egg problem 03:44:17 ais523: Oh, so it does what reptyr does. 03:44:18 however, you could just inject the memory allocation into one of the syscalls ld-linux.so made while loading the executable 03:44:28 so yes, that might work 03:44:38 I'm increasingly dubious about what you'd want this for, though :) 03:44:45 Ask shachaf. 03:45:06 shachaf: /proc/pid/maps is the easiest and officially supported way to find the VDSO, I think 03:46:07 ais523: What, making a system call in the debugee? Is that too much to ask? 03:46:18 shachaf: what specifically are you trying to do? and when? 03:46:46 the problem is that while a program's making a system call, it's executing kernel rather than user code (or rather, the kernel's executing code on its behalf) 03:46:55 so putting it at arbitrary points in the code is probably a bad idea 03:47:10 if you just want to add your own syscalls where it's already making syscalls, it's easy (and web of lies does that to some extent) 03:47:12 ais523: Huh? Why? 03:47:20 either replacing the original syscall, or using it plus an extra one 03:47:25 It's just an instruction, and everything goes through the registers anyway. 03:48:09 shachaf: right; and running arbitrary asm instructions would also be difficult 03:48:15 if you didn't want to break thread-safety 03:48:33 (although typically you could just do their result on the process's memory and registers directly) 03:48:52 again, I ask: what are you trying to do? I've given my explanations as to the answer to your question, but have a suspicion that you're asking the wrong question 03:49:13 ais523: So what I'm planning on doing now is using the VDSO to make the system call, rather than modifying memory. 03:49:29 shachaf: you are ignoring me 03:49:33 :-( 03:49:58 ais523: I want to call mmap() and mprotect() and that sort of thing on a debugged process. 03:50:43 well, your debugger's going to be inserting trap instructions into the code anyway, isn't it? 03:51:00 No? 03:51:07 shachaf: well, how does your debugger stop the code? 03:51:17 PTRACE_ATTACH or something. 03:51:36 However they normally do it before there are any breakpoints. 03:51:50 they normally use PTRACE_TRACEME in a child process 03:52:01 and then get that child process to exec the thing it's debugging 03:52:08 so the process is being ptraced all the time it exists 03:52:09 If they're running a new program, yes. 03:52:18 In which case I can allocate memory for it anyway. 03:52:18 -!- olsner has quit (Ping timeout: 265 seconds). 03:52:26 But in other cases they attach to a running process. 03:52:35 using PTRACE_ATTACH is equivalent to sending the process SIGSTOP and catching that 03:52:57 so you're stopping the process with signals 03:53:06 debuggers normally don't do that, though, because it's very hard to aim 03:53:36 I don't know that I care about precision too much. 03:53:42 typically they're aiming for a particular point in the code, rather than just "whenever my SIGSTOP/SIGTRAP happens to land" 03:54:05 cool, nelson wrote a whole blog series on termios 03:54:07 * kmc reads 03:54:13 termios pt. 1 03:54:18 AAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRLGKJSLFKSDFL:SDKFSD:LFK 03:54:19 termios pt. 2 03:54:25 A:SLDKLA:SDK:ASLKD:ASDLKASDL:KASDL:KASDL:KAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHH 03:54:26 termios pt. 3 03:54:34 HHHHHHHHHHHHHHHHHHHHWHYGODWHYGODWHYHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 03:54:34 well, injecting an mmap into a random point of someone else's code isn't necessarily going to produce useful results 03:54:38 termios pt. 4 03:54:48 THEREISNOJUSTICETHEREISONLYSINALLLIFEISSUFERINGOHGODNOTTHEAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHH 03:55:17 what if their code is trying to do an mmap at the time, for instance? (that said, it probably wouldn't matter unless whichever one came second had a fixed address) 03:55:43 allocating a page to hold a syscall instruction is still a good idea 03:55:55 kmc: Even with the VDSO? Why? 03:56:00 well i don't know about that 03:56:24 shachaf: anyway, if you're injecting mmaps into their code as it is, why not just inject another mmap to hold the syscall instruction? 03:56:47 ais523: Right -- assuming I can get one to hold a syscall instruction in the first place. 03:56:49 because mmap is the syscall? 03:56:58 shachaf, i meant that if you're doing what reptyr does -- injecting a syscall when the process does one 03:57:09 then you effectively only need to do that once 03:57:09 Ah. 03:57:18 because the syscall you inject can set up a page for making syscalls 03:57:23 In that case, sure, you can allocate a page or something to save yourself from doing it again. 03:57:40 by the way, did y'all see the paper that replaced the system call mechanism with user/kernel polling of a memory ringbuffer? 03:58:07 Have I mentioned that syscalls are terrible? 03:58:15 hi @elliott 03:58:17 kmc: no, but it sounds like a bad idea (gut reaction) 03:58:25 * shachaf didn't see that paper. 03:58:50 it's a good idea if you want low latency and high throughput rather than maximum CPU efficiency 03:58:58 shachaf: Did you know that syscalls are terrible? 03:59:10 i mean what you really want then is to put the kernel on one core and your app on another 03:59:16 so there are never any context switches 03:59:24 * kmc tries to find paper 03:59:25 @ doesn't have syscalls, it just runs everything in ring 0 and links the kernel into the executable 03:59:31 yes 03:59:31 ais523: Exactly. 03:59:37 using proof carrying code? :D 03:59:37 and instead just statically verifies that the code doesn't break security 03:59:42 No, ais523 isn't joking, that's literally waht it does. 03:59:50 kmc: Mostly just compilers I arbitrarily ordain to be trusted. 03:59:50 "does" 03:59:54 But proof carrying code would work too. 03:59:57 I like your tense there, elliott. 04:00:03 shachaf: ais523 started it! 04:00:13 ais523 isn't you. 04:00:32 See, I was just about to ask kmc if he knew that syscalls were terrible. But then ais523 educated him for me. 04:00:36 Now he sees the Light. 04:01:03 they're terrible in many ways, i don't know which you mean 04:01:14 elliott: seen Google Native Client? it seems to have a pretty similar idea to @ 04:01:18 wrt syscalls 04:01:27 except with library calls instead 04:01:27 ais523: Yes, it's intriguing. 04:01:39 kmc: The Way they're broken is that they don't follow the Way (which is whatever @ does). 04:01:43 But they're like slow and ugly and shit, you know? 04:01:50 @ isn't slow, ugly *or* shit! 04:02:03 (And it is, at the same time. That's what's great about vacuous properties.) 04:02:08 (See, shachaf, I can do it too!) 04:02:09 @ isn't fast, beautiful, or good. 04:02:13 Well, maybe it's beautiful. 04:02:19 monqy: is @ beautiful 04:02:22 elliott: did you try out aimake, btw? 04:02:24 @ is fast! 04:02:26 ais523: Not yet. 04:02:28 ais523: Can it compile @? 04:02:35 is @ written in C? if not, probably not 04:02:36 there's a sandboxing idea (don't remember if it's the one used by NaCl) where you have untrusted code running in a seccomp sandbox (so it almost can't make syscalls itself) which communicates with a helper to do syscalls on its behalf 04:02:37 it's designed for C 04:02:41 Only @ can compile @. 04:02:41 Only @ can compile @ 04:02:44 X-D 04:02:49 thus freeing the kernel from the need to implement more fine-grained sandboxing 04:02:52 You guys are all brainw@shed. 04:02:56 kmc: NaCl doesn't work like that, not least because it doesn't work on Windows 04:03:13 ais523: @ is written in C in the same way that is 04:03:32 kmc: By the way, ais523 actually lied to you about @. 04:03:34 @ doesn't have a kernel. 04:03:46 and I think there was a flavor of this where you can run unmodified untrusted Linux x86 code, by replacing the field in the glibc thread structure that says where to jump to do a syscall (which originally points to the VDSO) 04:03:54 but that won't work on amd64 04:04:04 elliott: right, I should correct it to "things that would traditionally be part of the kernel" 04:04:04 In fact, @ doesn't have anything at all. 04:04:21 oh, and I fixed an aimake bug recently, well nonportability 04:04:23 elliott: Aw, come on. I wouldn't say that. 04:04:23 I think @ is one of those things where, like Feather, it is impossible to know it's not a joke unless you were there before it became a meme. 04:04:26 someone complained it didn't run on 5.8 04:04:28 @ has all sorts of great features. 04:04:40 It may not have a type system, but it sure has a hype system. 04:04:44 -!- olsner has joined. 04:05:11 ais523: Can you kick shachaf? 04:05:33 ais523: Betcha can't kick me. 04:05:50 shachaf: unless I've been deopped recently, sure I /can/ 04:05:57 whether it would be a good idea is another issue, though 04:06:13 -!- ChanServ has set channel mode: +o olsner. 04:06:16 Wh 04:06:19 olsner: Kick shachaf. 04:06:23 -!- ChanServ has set channel mode: -o olsner. 04:06:26 No! 04:06:27 Fascist! 04:06:27 olsner: You heard elliott. 04:06:34 ais523: Op olsner. 04:06:44 `quote trust olsner 04:06:47 594) this strikes me as probably better than a singularity, because you can't trust a random AI, but you can probably trust olsner 04:06:50 You said it yourself! 04:06:58 well remembered :) 04:07:02 I have played Dungeons&Dragons game on Sunday this week 04:07:15 * ais523 wonders what the context was 04:07:25 don't find out, it'll ruin it 04:07:26 I managed to knock someone down a well, but they can climb back up. At least, now we know, how deep the well is. 04:07:44 zzo38: Aaaah, expendable minion pathfinding. 04:07:45 :) 04:08:00 zzo38: Are dragons real? 04:08:05 shachaf, ah, here is this paper: http://www.eecg.toronto.edu/~livio/papers/libflexsc-usenix-atc11.pdf 04:08:22 pikhq: No, it was one of our opponents who was fighting us, and in a few rounds they will be able to come back up; but we may have left the room by then. 04:08:25 kmc: By the way, @ doesn't need reptyr. 04:08:28 `quote 04:08:28 shachaf: Unless by "real" you mean "not real". 04:08:30 `quote 04:08:30 That's because it doesn't have ptys. 04:08:31 469) god created the natural numbers, the rationals were done by man and the work was finally completed (topologically) by satan himself 04:08:31 `quote 04:08:33 `quote 04:08:34 `quote 04:08:35 148) OK, so is conspiring to conspire to commit a crime a crime? Let's all get together and talk about defacing public property sometime 04:08:35 Or processes. 04:08:37 Or code. 04:08:37 shachaf: It is just a game. None of the characters are real. 04:08:41 393) The system I kind of have in mind makes a flying train a natural consequence. 04:08:49 553) I think it's fizzie against everyone atm AND EVERYONE IS WINNING EXCEPT FIZZIE 04:08:52 508) So it's like... Rummy mixed with... breakout? 04:08:59 I thought 553 04:09:02 but it's too stupid to delete 04:09:13 oh, 553 is the one there that actually made me laugh 04:09:20 393 probably isn't that good 04:09:23 meh, they're all pretty good 04:09:32 zzo38: You're not real? 04:09:35 I'd be up for deleting 393, or not deleting any 04:09:43 `quote 04:09:43 `quote 04:09:43 `quote 04:09:44 `quote 04:09:44 `quote 04:09:52 bleh, I wish that I could logically conclude from this that zzo38 was a dragon 04:09:55 shachaf: I am real; my D&D character is not really exists. 04:10:00 87) For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. 04:10:04 ais523: And that is not a correct kind of logic. 04:10:08 zzo38: Am I really exists. :-( 04:10:11 604) CakeProphet: mr president, in the best egyptian judicial traditions has now been put off to friday. but i want my money back'. we know it generally deals with major infrastructure projects which could form part of the emergency package for korea, on christmas eve, in the interests of consumers and the environment of gmos. 04:10:12 45) Reality isn't a part of physics 04:10:12 zzo38: I know, that's why I can't 04:10:12 715) * oerjan concludes that unsafeCoerce has no effect on strictness 04:10:13 36) I guess when you're immortal, mapping your fonts isn't necessary 04:10:17 shachaf: Are yo usure? 04:10:22 s/yo u/you / 04:10:45 zzo38: Why do you say are me sure? 04:11:04 shachaf: Just in case you are not sure. 04:11:06 87 isn't really all that funny, 604 is untouchable because fungot 04:11:06 elliott: me! i do. " merry? you're poor enough! all i've come to love is the tension, but relationships are about compromise, but not the player should do that too 04:11:08 45 is amusing 04:11:11 715 is amusing 04:11:16 36 is amusing 04:11:20 zzo38: O. Yes, I am sure 04:11:25 604 is not good for fungot 04:11:25 ais523: all t-rex has ever met and ever will meet! never try to have a theological discussion with god and he was all " i'm busy inventing the future! 04:11:30 shachaf: OK 04:11:32 yeah ok 04:11:34 `delquote 604 04:11:35 sorry fungot 04:11:35 elliott: and so: " probably not!" well, not all of our actions, and i am, a little! 04:11:38 ​*poof* CakeProphet: mr president, in the best egyptian judicial traditions has now been put off to friday. but i want my money back'. we know it generally deals with major infrastructure projects which could form part of the emergency package for korea, on christmas eve, in the interests of consumers and the environment of gmos. 04:11:43 "never try to have a theological discussion with god and he was all " i'm busy inventing the future!" <-- :D 04:11:54 elliott: I suspect that's mostly literal 04:12:06 actually, maybe not 04:12:15 it's literal in two parts, i think 04:12:20 break on "and" 04:12:42 elliott: I think it may be three, you can break on "busy" too 04:12:57 http://www.qwantz.com/index.php?comic=1392 + http://www.qwantz.com/index.php?comic=1824 04:14:02 it is three parts, neither of those has the "was all" bit 04:14:10 middle part might be harder to find 04:14:11 oh, indeed 04:14:29 unfortunately, "he was all" appears frequently in Dinosaur Comics :) 04:14:33 well, 8 times 04:14:46 "and he was all" only 4 04:14:53 By the way, did you know that foo = (Foo *)(void *)bar; isn't the the same as foo = (Foo *)bar; in C++? 04:14:55 aha 04:14:56 http://www.qwantz.com/index.php?comic=1286 04:15:01 "God and he was all" 04:18:25 shachaf: What's the distinction? 04:18:56 pikhq: Casting can change the value of a pointer. 04:19:00 ... 04:19:10 But not casting to void, I assume. 04:19:26 No, but casting to a superclass. 04:19:35 Unless someone defined operator void*. 04:19:49 Wait, you can do that? 04:19:59 Yes. 04:20:19 How does that work? 04:20:26 It's used so you can do if(foo) on an arbitrary object. 04:21:07 shachaf: Obvious. It overrides the void* cast. 04:21:25 whereas if you tried to define casting to boolean, it could be used in arithmetic 04:21:35 Yes. 04:21:40 and void* is just as good as bool for the condition of an if statement 04:21:42 I didn't know you could overload C-style casts. 04:21:55 ais523: that lets you define safe booleans in C++, btw 04:21:59 that stop you adding them, etc. 04:22:02 I dunno if you can in general, or if void* is a special case. 04:22:04 conclusion: C++ is busy using its features working around other of its features 04:22:14 elliott: but that don't stop you passing them to memcpy 04:22:18 shachaf, one thing i like about the magic qemu chroot is that I can use make -j12 without emulating a 6 core ARM machine 04:22:37 void* is not a boolean type… 04:22:39 but this got me thinking, does qemu cache the translations of chunks of /usr/bin/gcc between runs? i don't think it does 04:22:43 Yup, it's general. 04:23:10 Can we make up the LLVM+BLISS+WEB combination of programming language? All three have features I like that should belong to a programming language for similar use like C and so on. 04:23:37 ais523: well, no, it doesn't 04:23:41 ais523: but that's a rarer error :) 04:23:41 So, foo=(Foo*)(void*)bar isn't the same as foo=(Foo*) in two ways. 04:23:46 ais523: I didn't mean use void * directly 04:23:49 I meant use a class with operator void * 04:23:59 that's defining an implicit cast, isn't it? 04:24:05 so you could still pass it to memcpy 04:24:08 yes 04:24:31 ais523: Unfortunately for C++, in GNU C pointer arithmetic on void* is defined. 04:25:04 pikhq: however, it does give a warning by default on that 04:25:14 or possibly only with a standard rather than gnuish --std 04:26:01 goto *(void*)0; 04:26:12 Conclusion: C++ is a twisty maze of features, all alike. 04:26:50 LLVM lacks macros and stuff, so adding BLISS style macros and other features from BLISS and WEB would probably make a programming language which it can be written a programs in! 04:26:52 nah, the problem with C++ is that most of its features are designed to dodge deficiencies in other of its features 04:27:21 It also has at least two different renditions of most of its features. 04:28:40 Consider std::vector and blocks of memory allocated via new foo[]. 04:29:00 Heck, consider new and malloc. 04:29:03 those aren't very equivalent 04:29:12 new and malloc are closer 04:29:25 kmc: They're similar, and can be used for similar purpose. 04:29:32 i mean, I think one of the biggest flaws in C++ is that they tried to incorporate C wholesale, rather than designing a sane contained C FFI 04:29:40 that's where much of the duplication comes from 04:29:42 (except, C++ being what it is, you can't realloc those new foo[]s. 04:29:43 ) 04:29:50 vector is higher level than new, for that reason among others 04:30:06 it makes sense to have new[] (a language feature) and also std::vector (a library implemented using that feature) 04:30:08 "one of the biggest flaws of C++" -- C++ has small flaws? 04:30:13 yes 04:30:15 In general, C++ has a high-level way and a low-level way. 04:30:25 elliott: sure, if something has a bunch of large flaws, wouldn't you expect it to have minor ones too? 04:30:27 And often has a high-level C++ way, a low-level C++ way, and a low-level C way. 04:30:34 ais523: there's nothing small about C++ 04:30:35 pikhq, I can't complain when the high-level way is a library 04:30:52 i mean, isn't that how things should work? a suite of core features, with a standard library that uses them 04:30:53 like the octal syntax 04:30:56 minor flaw 04:31:02 foo > is a minor flaw 04:31:08 (and fixed in C++11) 04:31:26 Do you know the BLISS programming language? 04:31:29 i think that C++ code written carefully by experts in accordance with all C++ features, good practice, and idiom is actually rather nice 04:31:43 but it's too much work 04:32:03 and most people you can hire to code C++ don't know nearly enough of it to do that 04:32:19 kmc: new[] requires the same library, believe it or not. 04:32:20 the inbetween states where you're using some fancy C++ features but not others are pretty awful 04:32:32 do you mean because it can throw std::bad_alloc 04:32:42 Is there such a thing as a GNU BLISS compiler? 04:32:44 In part. 04:32:47 wait, no, it doesn't, because it returns NULL instead 04:32:49 i think that C++ code written carefully by experts in accordance with all C++ features, good practice, and idiom is actually rather nice 04:32:52 Have you seen boost? 04:33:03 i thought allocations of pointer type return NULL and allocations of other type throw 04:33:04 elliott, yes 04:33:10 many parts of boost are nice to use 04:33:26 the guts are a bit nasty, in part because they accommodate tons of broken/incomplete compilers 04:33:46 "A bit"? 04:33:55 Have you seen the source code to boost::optional or whatsit? 04:34:04 yes 04:34:32 C++ applications code does not look like Boost missing-stdlib code 04:34:33 elliott: no, although I get the feeling it would be interesting 04:35:04 i think C++ is basically a bad language, but the way in which it's bad is almost the opposite of the way most languages are bad 04:35:08 which makes it a fascinating case 04:36:17 void *operator new(size_t size) actually is part of the C++ standard library; it literally doesn't exist in freestanding implementations. 04:36:22 C++ is a language I really can't bring myself to dredge up any sympathy for in any capacity other than a curio. 04:36:23 kmc: Then which is better? LLVM? 04:36:32 I can even say kind words about Java sometimes. 04:36:33 (that there is such a thing as freestanding C++ is a bit scary) 04:36:50 pikhq, that's true 04:36:59 in fact you can overload it within your namespace? 04:37:33 (but you can also add arguments, which is how memory pools are supposed to work) 04:37:39 And on individual classes, of course. 04:37:43 I should probably sleep. 04:37:44 @time 04:37:45 Local time for elliott is Wed Apr 4 05:37:39 04:38:34 you don't have your time in the corner of the screen? 04:38:37 or in your IRC client? 04:39:19 what i think is particularly funny is that other languages adopted C++'s 'new' keyword, without adopting the design decisions that make it necessary 04:39:39 ais523: nope 04:39:40 what other languages other than Java? 04:39:44 elliott: wow 04:39:48 Probably C#. 04:39:56 can I blame this on XFCE? 04:39:58 kmc: I think the "delete" keyword is even funnier. 04:40:00 no, I use xmonad 04:40:02 pikhq: that's copying Java, though, not C++ 04:40:05 elliott: oh, OK, you're forgiven 04:40:07 @time 04:40:08 @time ais523 04:40:08 Local time for elliott is Wed Apr 4 05:40:03 04:40:09 javascript 04:40:09 Local time for ais523 is Wed Apr 4 05:39:37 2012 04:40:13 your clock is wrong 04:40:28 no, yours is, this one's updated over ntp 04:40:35 no, yours is, I'm infallible 04:40:47 I guess ja.net's clock could be wrong, theoretically, that's what I'm syncing with 04:40:51 but I trust them 04:40:57 And C# even manages to copy Java's "Lawl EVERYTHING is a class or an object!" junk. 04:41:12 not everything is a class or an object in Java 04:41:18 i think Java would be better if it were 04:41:21 pikhq: now Java is planning to copy it back from C#, apparently 04:41:28 arrays being non-objects is stupid 04:41:35 unboxed ints I have some sympathy for, after working with Haskell :D 04:41:45 i think they should be hidden deeper though 04:41:56 you have to push some scary levers before GHC will show you an unboxed int 04:42:01 Why anyone would want “public class Hello {public static void main(String []args){System.out.println("Hello, world!\n");}}” is beyond me. 04:42:20 by which point it's less surprising that they're not first class 04:42:31 Ah, right, yeah, it's got rather annoying non-first-class primitives. 04:42:36 Because... I dunno. 04:42:38 pikhq: indeed, they should clearly use an enum 04:43:09 i mean recall that Java was originally designed to run on toasters and smart cards in 1995 04:43:29 heap allocating every integer might have been a grave performance burden 04:43:39 (of course, they *could* do a much more respectable thing: void main(String[] args){println("Hello, world!");}) 04:43:45 i think in 1995 you could barely use GHC on a commodity PC 04:44:03 And C# even manages to copy Java's "Lawl EVERYTHING is a class or an object!" junk. 04:44:08 Ja- yeah kmc said it 04:44:33 elliott: I'm mostly criticising its concept that you don't get functions outside of classes. 04:44:43 pikhq: I actually like the way you can give arbitrary classes a main, it's great for testing 04:44:53 Java's had a strange path, as far as what it was designed for vs. what it got used for 04:45:03 and I can see a plausible argument to be made that you shouldn't be allowed to have a function outside a namespace 04:45:13 however, conflating namespaces and classes is a bit weird 04:45:17 shachaf: Did you know: Haskell can be a surprisingly productive language (as I discovered writing my recursive-line-count program). But dealing with the perils of concurrency, IO, and exceptions kills it. 04:45:30 WOW RECURSIVE LINE COUNT 04:45:32 YOU ARE A HASKELL EXPERT 04:45:39 ais523: Why not have each file implicitly be a namespace? 04:45:49 This *also* gets rid of the annoying filename-class name redundancy. 04:45:58 pikhq: that's a valid viewpoint, I think I can agree with it 04:46:09 the main disadvantage is that you can't then put an entire Java program in one file, unless it has just one class 04:46:19 Java was designed for toasters and smart TV, then a failed attempt at becoming Flash, then smart cards, then enterprise BankingSoftwareMiddlewareFactories 04:46:22 unless you have different syntax for private and public classes 04:46:24 kmc: Apparently he agrees that those things are nicer in Haskell than other languages. 04:46:29 Why is #include not causing pid_t to be defined when compiling with gcc -std=c99? 04:46:29 I'm not sure what kind of cognitive dissonance is going on. 04:46:29 oh and dumbphones 04:46:36 What, like Java people stick multiple classes in a file? :) 04:46:39 It works fine without that. 04:46:49 shachaf: does pid_t exist in c99? if not, you'll need a feature test macro 04:47:00 Well, it's in POSIX. 04:47:02 and... jewelry sold by Dallas Semi 04:47:02 elliott: Those things are some of the things I wanted to improve in a new programming language, similar to Haskell but it doesn't do exceptions in the way of Haskell, and other differences too 04:47:04 oh, not even that, it's because pid_t is actually in sys/types.h 04:47:16 note that std=c99 actually turns /off/ posix features 04:47:19 kmc: Why do you /ignore zzo38? 04:47:24 Or do you? I forget. 04:47:26 i don't /ignore 04:47:28 shachaf: zzo38's great, right? 04:47:28 unless you use an appropriate #define in order to turn them back on 04:47:30 kmc: Awesome. 04:47:39 I do. Not zzo38, though. 04:47:43 sometimes zzo38 says things and I do not have a response 04:47:47 the same happens for everyone 04:48:02 Oh, I didn't expect you to respond. 04:48:03 ais523: Aha, thanks. 04:48:06 sys/types.h 04:48:06 kmc: including zzo38! 04:48:08 I just wanted to check you were receiving the insights, you know? 04:48:11 And you need the appropriate #define to comply with POSIX anyways. 04:48:13 yes 04:48:19 thanks for looking out for a brother 04:48:25 No problem, pal. 04:48:37 pikhq: "#define _POSIX_SOURCE 1" is the old standard, isn't it? although there are newer ones that do the same thing 04:48:48 it's #define _POSIX_VERSION SOMETHINGNOBODYCANREMEMBER or something 04:48:53 Haskell is "surprisingly productive" because the prior assumption is that you need 20 PhDs to do anything 04:49:01 so the fact that you only need, like, half a master's degree is surprising 04:49:12 #define POSIX_ME_HARDER 04:49:14 -!- asiekierka has joined. 04:49:15 kmc: Did you have February's exciting psychedelic adventure yet? 04:49:18 no 04:49:23 #define _POSIX_C_SOURCE 200809L 04:49:44 shachaf, my friends failed to obtain the material components :/ 04:49:49 slash I failed to ask them to 04:50:04 #define _XOPEN_SOURCE 700 if you want XSI extensions. 04:50:08 (decent chance you do) 04:50:09 #define POSIX_ME_HARDER 04:50:12 Isn't the point to transcend the material world or something? 04:50:49 i think if you're not a dumbass, psychedelic drugs will make you *more* of a philosophical materialist 04:50:58 kmc: Without these macros it is utterly nontrivial to make a system that complies with ISO C *and* POSIX simultaneously. 04:51:06 by showing how all those perceptions and emotions you hold dear can be manipulated by a tiny amount of a small chemical 04:51:10 I don't even have /IGNORE on my IRC; it has /F which is used for various filters but I almost never use that command anyways (when I do use, it is usually for purpose of notification or logging) 04:51:27 (as POSIX functions are not reserved in ISO C) 04:51:46 What if you *are* a dumbass? Tough questions. 04:51:52 but it also makes the Hard Problem seem less phantasmal 04:51:57 so can encourage dualism as well 04:51:59 shrug 04:52:09 Fuck dualism. 04:53:08 kmc: I read somewhere that they make a difference between "problem" and "mystery" so I use instead the "Hard Mystery" which is a slightly different version of the "Hard Problem" of consciousness 04:53:42 who makes this difference? 04:54:02 they do 04:54:06 They 04:54:07 kmc: I did; aren't you paying attention? 04:54:13 kmc: Can't you read? 04:54:17 no :( 04:54:25 Oops. 04:54:31 sorry kmc :( 04:54:32 it is my shameful secret 04:54:35 saymc 04:54:36 kmc failed the zzo38 test 04:54:40 back to 38th grade 04:54:47 you'll never get to zzo39 at this rate 04:55:31 zzo38: Are you in 38th grade? 04:55:48 shachaf: No; I am not in school at this time. 04:55:57 zzo38 *is* school. 04:55:59 Or was that elliott? 04:56:01 (And as far as I know they do not have that many grades in school anyways) 04:56:05 Oh no, it's getting light out side. 04:56:08 Help!! Help!! Help!! Help!! Help!! Help!! Help!! Help!! Help!! Help!! 04:56:12 @time 04:56:13 @time 04:56:13 @time 04:56:13 @time 04:56:14 Local time for elliott is Wed Apr 4 05:56:08 04:56:14 Local time for elliott is Wed Apr 4 05:56:08 04:56:15 Local time for elliott is Wed Apr 4 05:56:08 04:56:19 Local time for elliott is Wed Apr 4 05:56:08 04:56:20 Help!!!! 04:56:28 elliott: Then close the window. 04:56:52 It is closed. 04:57:18 elliott: How, exactly, do you school with your sleep schedule? 04:57:20 Then close the shutter too 04:57:35 pikhq: As shachaf kindly points out, I *am* school. 04:57:41 zzo38: I don't have one of those. I'm not like you rich Canadians. :( 04:57:43 No, but seriously. 04:57:53 Stop asking boring questions. 04:58:46 pikhq: I guess you just don't understand the Hard Mystery of Sleep. 04:59:12 There's many things I don't understand. 04:59:13 * elliott 40th grade 04:59:17 * kmc hugs git rebase -i --autosquash 04:59:23 meh, how much PSE do you have in your timetable? that's a good time to sleep 04:59:51 kmc: heh, in darcs you can just commit into patches that aren't the most recent, comes to the same thing 05:00:06 heh 05:00:14 yeah git's way is kind of ad-hoc 05:00:37 git is Unix (that's a bad thing) 05:01:03 @ is @ 05:01:05 that's an @ thing 05:01:22 better than C, better than B, better than A, it's @ 05:01:52 is the implication that I "cba" to write @? 05:01:54 and Darcs is Haskell? 05:01:55 VERY DROLL SIR 05:02:00 ais523: no, darcs is Miranda 05:02:28 what's Miranda like? it used to be mentioned in the same breath as Haskell a lot, but people stopped doing that more recently 05:02:38 it's basically a predecessor to Haskell 05:02:58 it's like haskell but weird 05:03:11 no algebraic data types afaik 05:03:15 also didn't it have unlifted tuples 05:03:17 type variables are like * and ** and *** 05:03:17 *more weird? 05:03:20 ais523: oh, and 05:03:21 yeah what kmc said 05:03:31 i think it's basically not used anymore 05:03:36 it had one, commercial, implementation 05:03:42 -!- pikhq_ has joined. 05:03:45 Miranda and Clean are basically uncanny valley to me 05:03:50 they're like Haskell but fucked up 05:03:54 i'm amazed someone tried to sell bad haskell 05:04:14 -!- pikhq has quit (Ping timeout: 264 seconds). 05:04:19 Did anyone buy it? 05:04:24 That would be the amazing bit. 05:04:25 hey what ever happened to iPwn Studios 05:04:26 but Miranda is more, relic of an ancient civilisation 05:04:30 Clean is like, the aliens are fucking with us 05:04:36 are they still trying to prove the Riemann Hypothesis as part of making an iPhone game 05:04:52 Cale occasionally mentions that he's still working on it. 05:04:52 kmc: Cale mentioned them today! 05:04:56 the bit of R code I've read looks like uncanny valley for Python 05:04:58 Well, indirectly, saying that he works with Haskell making games. 05:05:12 -!- calamari has joined. 05:05:13 and by "making games" he means not making games 05:05:13 I think the only employee is Cale. His job is to convince everyone else they're making a game. 05:05:28 That makes people not want to start a Haskell game company, since one already exists. 05:05:30 the game is lazily evaluated 05:05:33 It's actually a front organisation for Microsoft. 05:05:39 They're trying to make Haskell die so F# can take over. 05:05:40 it will be coded as people play 05:05:43 and therefore was never released 05:05:47 yeah Microsoft hates Haskell 05:05:48 Dude, my conspiracy theory is 10x better. 05:05:58 kmc: Hey, F# has Microsoft corporate support! 05:06:06 They're arbitrarily evil, I hear. 05:06:12 Who cares about those research lackeys? 05:06:20 i saw Microsoft kick a puppy just because they could 05:06:26 i'm glad Apple is standing up to them 05:07:03 http://ipwnstudios.com/blog The uniform capitalisation of these entries suggests to me that it was decided, as company policy, to write all content on their website exclusively in lowercase. 05:07:19 iPwn "Zynga" Studios 05:07:21 elliott: Reasonable policy. 05:07:33 (Uniform capitalisation despite diverse authorship, that is.) 05:07:35 However, some capital letters exist. 05:07:44 "iPhone", for instance. 05:07:58 iphone 05:08:13 NO NOT THE LIGHT 05:08:36 iPhoppotammus 05:09:23 -!- Jafet has joined. 05:10:46 sjopefkopfkopwefopwef 05:10:48 kmc: why amn't i sleeping 05:10:50 @time kmc 05:10:50 Local time for kmc is Wed Apr 4 01:10:23 05:10:52 see 05:10:55 you fucking americans 05:10:56 and your time 05:11:01 PH is one of you now I hate you all 05:11:03 and your 05:11:04 big food 05:11:11 and your sideways panama 05:13:30 http://blog.regehr.org/archives/696 05:15:23 fuck 05:15:24 fine 05:15:27 assholes i'll go to sleep :( 05:15:30 Seeing the contents of /proc/PID/maps printed in my terminal immediately makes me thinks my program crashed. 05:15:48 Perhaps there was those thing other than Haskell before, and now they made Haskell; but now I have other ideas too make something like Haskell but is many differences such as macros, non-layout, instance overriding and local instances, different names for many things, and other differences. 05:16:19 `cat /proc/self/maps 05:16:22 00100000-00102000 r-xp 00000000 00:00 0 \ 00400000-0040c000 r-xp 00000000 00:09 842385 /bin/cat \ 0060c000-0060d000 rw-p 0000c000 00:09 842385 /bin/cat \ 0060d000-0062e000 rwxp 00000000 00:00 0 [heap] \ 40000000-4001e000 r-xp 00000000 00:0f 836813 /lib64/ld-2.11.3.so \ 4001e000-40022000 rw-p 00000000 05:16:33 * pikhq_ injects elliott with a pound of pure Meat 05:17:14 I don't like how some of the classes in Haskell are defined such as the Monad and Applicative class. Monad should have Functor superclass and then have return and join as its only methods 05:19:16 (And the way it is now, join is not even a class method at all.) 05:19:23 elliott: HELP 05:19:32 elliott: Why did you crash my IRC cliet. :-( 05:20:19 And the class method of Applicative should be pure and liftPair 05:20:41 -!- elliott has quit (Ping timeout: 245 seconds). 05:21:17 Maybe you disagree with these things but these are my opinion. 05:22:54 In some categories all monads are applicative and in some categories that isn't, so Applicative should not be a superclass of Monad but instead be something that allows it to give default instance anyways in case of categories where that is possible 05:44:50 HackEgo, y u no ASLR 05:45:39 `sort <(cat /proc/self/maps) <(cat /proc/self/maps) | uniq -d 05:45:43 sort: open failed: <(cat /proc/self/maps) <(cat /proc/self/maps) | uniq -d: No such file or directory 05:45:50 wtf 05:47:23 `run sort <(cat /proc/self/maps) <(cat /proc/self/maps) | uniq -d 05:47:26 No output. 05:47:51 ` is more like #! than a shell. 05:47:54 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 05:47:54 oh 05:48:07 `cat /proc/self/maps 05:48:10 00100000-00102000 r-xp 00000000 00:00 0 \ 00400000-0040c000 r-xp 00000000 00:09 842385 /bin/cat \ 0060c000-0060d000 rw-p 0000c000 00:09 842385 /bin/cat \ 0060d000-0062e000 rwxp 00000000 00:00 0 [heap] \ 40000000-4001e000 r-xp 00000000 00:0f 836813 /lib64/ld-2.11.3.so \ 4001e000-40022000 rw-p 00000000 05:48:10 `cat /proc/self/maps 05:48:13 00100000-00102000 r-xp 00000000 00:00 0 \ 00400000-0040c000 r-xp 00000000 00:09 842385 /bin/cat \ 0060c000-0060d000 rw-p 0000c000 00:09 842385 /bin/cat \ 0060d000-0062e000 rwxp 00000000 00:00 0 [heap] \ 40000000-4001e000 r-xp 00000000 00:0f 836813 /lib64/ld-2.11.3.so \ 4001e000-40022000 rw-p 00000000 05:48:35 `run (cat /proc/self/maps; cat /proc/self/maps) | sort | uniq -d 05:48:38 00100000-00102000 r-xp 00000000 00:00 0 \ 00400000-0040c000 r-xp 00000000 00:09 842385 /bin/cat \ 0060c000-0060d000 rw-p 0000c000 00:09 842385 /bin/cat \ 0060d000-0062e000 rwxp 00000000 00:00 0 [heap] \ 40000000-4001e000 r-xp 00000000 00:0f 836813 /lib64/ld-2.11.3.so \ 4001e000-40022000 rw-p 00000000 06:06:21 I think some people might have said that HPDF is too much monadic; well, dvi-processing doesn't do that so maybe they prefer that one 06:10:47 -!- asiekierka has quit (Quit: Wychodzi). 06:20:54 -!- calamari has left ("Leaving"). 06:57:34 RAII is a weird term 06:57:43 it should be RRID 06:58:11 RRID? 06:58:17 resource release is destruction 06:58:28 that's more the point of it, i think 06:58:55 (i don't know if "destruction" is the antonym of "initialization") 06:59:16 i guess finalization is the antonym of initialization, but probably not in C++ 07:01:16 There aren't all that many languages that actually have C++-style destructors, are there? 07:01:32 i don't know of others; maybe D 07:02:26 C++ has a near-monopoly on high-level OOP with explicit resource management 07:02:28 Well, D is still garbage-collected... 07:02:33 one of many things that makes it a unique language 07:02:50 i thought maybe D has non-garbage-collected values 07:02:59 i was reading about substructural type systems in ATaPL 07:03:05 you can do some cool things 07:03:55 they introduce a system where each type is annotated as either "unrestricted" or "linear" 07:04:11 objects of linear type are used exactly one on each control flow path, so can be deallocated immediately after use 07:04:20 the GC is meant to be optional in D 07:04:28 although the standard library doesn't work properly with it turned off atm 07:04:32 then they introduce a third mode, "reference-counted" 07:05:15 -!- cheater has joined. 07:06:09 Also, isn't it conservative GC'd, i.e. crap? 07:06:28 Do you know where they have a death penalty for speaking English? 07:06:57 with functions «increment :: refcounted T -> linear (refcounted T, refcounted T)» and «decrement :: (linear T -> ()) -> refcounted T -> ()» 07:06:58 Canada? 07:07:22 Hah. 07:07:40 shachaf: I mean more specifically 07:07:46 the intended operational semantics is that of ordinary refcounting 07:07:46 Well. Yeah. Quebec is still part of Canada, non? 07:07:56 but the types make sure you've refcounted properly 07:08:11 the function (linear T -> ()) could be considered a destructor 07:09:18 pikhq_: Yes, in Quebec. It is part of Canada; but it is not the entirety of Canada. This law makes air traffic control difficult in Quebec, because air traffic control is supposed to be English by international law; so they do air traffic control in French there and that makes flights difficult 07:09:43 Try "impossible". 07:10:09 quebec has a death penalty for speaking english? 07:10:09 Air traffic control is done in English in *France* for goodness sake. 07:10:18 kmc: Probably not actually. 07:10:30 They don't have a death penalty in general, so how could they have one in specific? 07:11:17 pikhq_: Yes, in France, and everywhere in the world other than Quebec, air traffic control is English by international law. 07:22:14 kmc: you get sentenced to death by plane crash 07:22:22 -!- oerjan has joined. 07:23:01 either that or by accidentally a plane 07:24:51 zzo38, do you have a link about this claim? 07:24:53 http://www.tc.gc.ca/eng/civilaviation/publications/tp14371-com-annexa-467.htm 07:25:26 this indicates that both english and french are used in quebec 07:25:53 that's still bad though, because you can't understand what the other plane is saying ;P 07:26:27 http://books.google.com/books/about/The_language_of_the_skies.html?id=i-IhCl04_7kC 07:27:03 -!- cheater has quit (Ping timeout: 264 seconds). 07:28:15 http://en.wikipedia.org/wiki/Air_traffic_control#Language 'Pursuant to requirements of the International Civil Aviation Organization (ICAO), ATC operations are conducted either in the English language or the language used by the station on the ground.[2] In practice, the native language for a region is normally used, however the English language must be used upon request.[2]' 07:28:52 also this doesn't apply to military aircraft 07:29:20 there was an amusing story about the korean war, when the USSR secretly sent planes and pilots to help the communist side 07:29:39 to keep it secret, they gave the pilots Russian-Korean phrasebooks for basic flying-related terms 07:30:10 and so you could listen on the radio and hear pilots talking in bad russian-accented korean 07:30:29 which would quickly devolve to russian curse words when they got in a dogfight or the plane malfunctioned 07:32:24 kmc: I do not have a link; I was told by air traffic controllers, I was not told this by the computer. Perhaps you can look it up in Wikipedia, though. 07:46:51 -!- cheater has joined. 07:55:58 -!- cheater has quit (Ping timeout: 246 seconds). 08:13:33 -!- NSQX has quit (Quit: Page closed). 08:14:01 nsqx was here the whole time??? 08:14:20 -!- cheater has joined. 08:19:10 He is already here 08:19:49 he left 08:19:57 he's not here at all 08:23:48 waiting in silent despair 08:27:12 hi monqy 08:40:18 huh i just learned what happens when you press ^D on a non-blank line in a cooked mode unix terminal 08:40:28 why did i never try this before 08:41:17 and ^D^D lets you end input without a trailing \n 08:43:19 also hexdump waits for two EOFs if the input is a tty? 08:43:24 wtffff 08:48:55 -!- Jafet has quit (Ping timeout: 244 seconds). 08:52:17 kmc: Wait, ^D works on non-blank lines? 08:52:23 Is this some new innovation? 08:52:41 I could've sworn that this thing which is working didn't use to work. 08:52:51 Which is why I always type a newline before ^D. 08:55:58 ^D on a non-blank line sends the line to the process, without a \n 08:56:10 it then lets you input more text on the same line, but you can't backspace over what was already sent 08:56:41 Right. 08:56:56 And ^D when there's no input in the buffer sends EOF. 09:07:17 * kmc read nelhage's 3-part series on termios 09:15:12 kmc: quite a lot of programs mistakenly wait for two EOFs 09:15:24 but if the input isn't a tty, you can't tell, because if it sends EOF at all it's going to always send EOF 09:15:56 ah yeah, that's what's happening 09:16:00 confirmed with cat | strace hexdump 09:16:17 so the bug tends not to be caught 09:17:59 -!- ais523 has quit (Remote host closed the connection). 09:18:23 Why do programs wait for two EOFs? 09:27:08 i recall my super-short unlambda cat did that :P 09:27:47 someone should write a browser extension which replaces every occurrence of the word "awesome" with a synonym 09:27:47 or something like that anyhow. it may have read even more EOFs. 09:51:58 -!- monqy has quit (Quit: hello). 10:04:21 -!- salomon has joined. 10:04:28 hi 10:04:46 i have a big problem 10:05:05 i do feel every time pain and the buzzing of prana, chi and enerchy 10:05:17 its a pain body which i have 10:05:25 `? esoteric 10:05:29 i am trying everytime to accept it and it works sometimes fine 10:05:46 since now i had three dark pushes 10:05:47 This channel is about programming -- for the other kind of esoterica, try #esoteric on irc.dal.net. 10:06:03 aha i didnt knew that 10:06:05 sorry for it 10:06:23 don't worry, you're certainly not the first :) 10:07:02 is esoterica a programming tool like java? 10:07:26 no, it's a general term for "weird" programming languages 10:07:45 `welcome 10:07:49 Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 10:09:05 hmm 10:09:25 salomon: basically by esoterica.. they mean.. "esoteric stuff" 10:11:41 so ... therefore.. 10:12:18 no umm.. this room is only about programming tools like java.. thats the simple way to say it 10:13:08 except java is nowhere near weird enough for us :) 10:16:16 rottytooth posted Entropy to proggit 10:16:45 I think theres a certain sense of asceticism in esoteric programming languages 10:18:35 itidus21: well yes. the best esolangs are based around a single core idea, and don't add more than necessary beyond that. ok, except funge-98 which is good because it does the exact opposite. 10:20:05 most are also very brief with single-char commands, although there are some that do the opposite of that too (Ork) 10:20:08 i like how esolangs eschew tokens > 1 character 10:20:10 yeah 10:22:00 Glass is somewhere in between, in that it _supports_ multichar variables but they aren't used much in what i've seen. 10:22:56 -!- quintopi1 has joined. 10:23:05 -!- tswett_ has joined. 10:23:11 wat 10:23:19 :( 10:23:22 angkor 10:24:00 WAT SEEMS TO BE THE PROBLEM 10:24:40 -!- hagb4rd has joined. 10:27:41 -!- quintopia has quit (*.net *.split). 10:27:42 -!- tswett has quit (*.net *.split). 10:28:08 thus splatten 10:28:56 -!- quintopi1 has changed nick to quintopia. 10:29:05 -!- quintopia has quit (Changing host). 10:29:05 -!- quintopia has joined. 10:29:33 apparently the server that i was on was the problem 10:29:43 -!- oerjan has quit (Quit: Lost terminal). 10:31:05 -!- itidus21 has left ("qunitopia: i'm learning that the most cryptic part of the pc is the cpu. at first this didn't make sense to me. "). 10:31:22 -!- itidus21 has joined. 10:32:17 but even after using a pc for decades, the cpu hides well 10:33:51 -!- salomon has quit (Ping timeout: 276 seconds). 10:40:32 cpus are fiendishly complex 10:40:53 it seems most programmers today don't even learn an instruction set architecture, let alone the details of how it's implemented 10:41:10 and i can be a crotchety old elitist and complain about this 10:41:14 but i think it's actually a good thing 10:41:25 more people are programming, and the abstractions they use are working 10:47:16 -!- Phantom_Hoover has joined. 11:02:14 -!- Jafet has joined. 11:11:21 -!- olsner has quit (Read error: Operation timed out). 11:27:16 -!- olsner has joined. 11:37:53 -!- Jafet has quit (Ping timeout: 246 seconds). 12:09:00 -!- jix has quit (Read error: Operation timed out). 12:13:00 -!- jix has joined. 13:00:03 -!- jix has quit (Ping timeout: 264 seconds). 13:00:32 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 13:01:39 -!- jix has joined. 13:07:46 -!- Taneb has joined. 13:07:50 Hello! 13:15:49 brb 13:26:10 -!- asiekierka has joined. 13:30:16 -!- Taneb has quit (Ping timeout: 245 seconds). 14:11:56 -!- oklopol has joined. 14:12:01 -!- oklopol has quit (Client Quit). 14:12:06 -!- oklopol has joined. 14:24:40 -!- cheater_ has joined. 14:26:45 -!- Taneb has joined. 14:27:03 -!- cheater has quit (Ping timeout: 264 seconds). 14:38:08 Hello! 14:40:02 -!- Taneb has quit (Read error: Connection reset by peer). 14:40:23 -!- Taneb has joined. 14:43:47 -!- Ngevd has joined. 14:43:47 -!- Taneb has quit (Read error: Connection reset by peer). 14:45:45 -!- Ngevd has quit (Read error: Connection reset by peer). 14:53:19 -!- nortti has joined. 14:55:29 -!- Taneb has joined. 15:04:00 -!- Taneb has quit (Read error: Connection reset by peer). 15:31:36 -!- nortti has quit (Quit: ChatZilla 0.9.86 [Firefox 2.0.0.14/2008040414]). 15:35:14 -!- elliott has joined. 15:37:00 @time 15:37:01 Local time for elliott is Wed Apr 4 16:36:55 15:37:21 -!- nortti has joined. 15:41:56 10:04:28: hi 15:41:56 10:04:46: i have a big problem 15:41:56 10:05:05: i do feel every time pain and the buzzing of prana, chi and enerchy 15:41:56 10:05:17: its a pain body which i have 15:41:59 fuckin' lol 15:45:07 AWWWW did I miss that? 15:45:24 I TOO feel the buzzing of prana, chi and enerchy :( 15:49:36 Also, I'm wearing Salomon (that spelling) shoes. 15:51:06 -!- nortti has quit (Ping timeout: 260 seconds). 15:53:05 -!- RocketJSquirrel has set topic: For Sale: Infinite Tape, Never Used | If you are feeling every time pain and the buzzing of prana, chi and enerchy, your matrix of solidity may not be idempotent. Please bring it to fixed point. | http://codu.org/logs/_esoteric/. 16:01:11 -!- monqy has joined. 16:07:23 Holy shit! 16:07:54 http://ompldr.org/vZDljbA 16:11:39 wut 16:11:42 Why? 16:11:49 Bot? 16:11:56 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 16:12:04 No idea. 16:12:16 elliott@solidity:~$ sudo awk '{ hits[$1]++ } END { for (ip in hits) print hits[ip], ip }' /var/log/nginx/access.log | sort -nr | less | head -n 10 16:12:16 684 205.211.50.10 16:12:16 321 89.28.195.227 16:12:16 262 194.228.224.108 16:12:16 243 87.238.84.65 16:12:18 192 188.220.17.7 16:12:20 180 91.232.96.5 16:12:22 148 128.95.77.61 16:12:24 143 62.3.202.98 16:12:26 140 37.59.162.251 16:12:28 130 90.202.238.50 16:12:30 If it's a DOS, it's a distributed one :P 16:12:33 And the log file isn't growing at any kind of alarming rate... maybe someone's downloading the dump over and over? 16:12:47 Nope 16:12:52 Ohwait 16:12:54 Might be because of proggit 16:13:18 TESTAMENT TO MY SKILLZ THAT THE SITE IS STILL GOING STRONG EH EH 16:13:28 what did they do 16:13:45 http://www.reddit.com/r/programming/comments/rrolt/entropy_a_programming_language_that_forces_you_to/ 16:14:13 I feel compelled to point out that I think Entropy is pretty neato. 16:14:50 Actually I kinda doubt proggit would give us this kind of traffic >_> 16:15:10 elliott, check referers? 16:15:43 207.238.205.226 - - [04/Apr/2012:16:14:18 +0000] "GET /wiki/Brainfuck HTTP/1.1" 200 14615 "http://intjforum.com/showthread.php?p=2421832" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0" 16:15:53 Maaaaan, log file! Before today I didn't know there was such a thing as intjforum.com. 16:15:55 You have RUINED my DAY! 16:16:13 Sgeo: Yehok 16:16:38 elliott@solidity:~$ sudo awk '{ hits[$11]++ } END { for (ref in hits) print hits[ref], ref }' /var/log/nginx/access.log | sort -nr | head -n 10 16:16:38 31658 "http://esolangs.org/wiki/Entropy" 16:16:38 5912 "-" 16:16:38 965 16:16:38 817 "http://esolangs.org/wiki/Main_Page" 16:16:40 576 "http://esolangs.org/wiki/Language_list" 16:16:42 528 "http://www.reddit.com/r/programming/" 16:16:44 506 "http://www.reddit.com/r/programming" 16:16:46 475 "http://esolangs.org/wiki/Hello_world_program_in_esoteric_languages" 16:16:48 293 "http://esolangs.org/wiki/Brainfuck" 16:16:50 181 "http://esolangs.org/w/index.php?title=Language_list&action=edit§ion=1" 16:16:54 (The reason the first count is so high is because everyone's coming to the site with a clean cache) 16:16:59 (And loading all the referenced resources.) 16:17:26 Oh well! The site is going sufficiently fast that I don't care. 16:17:40 RocketJSquirrel: (Is it loading fast enough where you are with a bigger ping?) 16:17:45 What's referer - ? 16:18:02 elliott: Doesn't seem slow at all. 16:18:50 Sgeo: No referer\ 16:18:51 * 16:19:02 Can I just say that I really love how the W3C has made a spelling error into a word. 16:19:06 That's power, right there. 16:19:11 o.O why wouldn't that show up as nothing? 16:19:17 There are 965 nothings 16:19:36 Sgeo: Those 965 nothings are probably when there was another space earlier on or something... 16:19:42 > 528+506 16:19:43 1034 16:19:50 I don't know why that would happen, but maybe if something sent "GET /wiki/Foo bar HTTP/1.1" t hat would happen. 16:19:52 s/maybe // 16:19:55 s/t hat/that/ 16:20:01 > 528+506+5912+965 16:20:02 7911 16:20:14 > 31658 16:20:15 31658 16:23:16 > 4 16:23:17 4 16:23:23 or is it 5 16:25:09 Apparently intjforum.com has people who are not INTJs. 16:25:12 I guess forum.com was taken? 16:27:32 Impossible. 16:27:32 -!- asiekierka has changed nick to PinkieP. 16:27:49 -!- PinkieP has changed nick to Pinkie_Pie. 16:27:52 -!- Pinkie_Pie has changed nick to PinkiePie. 16:27:57 -!- PinkiePie has changed nick to Pinkie-Pie. 16:28:04 -!- Pinkie-Pie has changed nick to Pinkie`Pie. 16:28:07 ... 16:28:30 -!- Pinkie`Pie has left ("Wychodzi"). 16:28:57 >_> 16:29:02 That was a nice attempt. 16:29:02 And nothing of value was lost. 16:30:46 I was sure RocketJSquirrel was going to /nick Friendship there. 16:31:48 Only if he'd stayed Pinkie Pie. 16:32:44 -!- oerjan has joined. 16:32:46 I'm pretty sure that was a pathetic attempt to find a variation on it that wasn't registered. 16:32:55 No, wait. 16:33:01 That was my thought too. 16:33:08 Ah, yes, indeed. 16:33:16 He now owns Pinkie`Pie`, and all the others are owned. 16:33:19 *no second ` 16:33:22 Hi oerjan can I replace your em dashes 16:33:25 I'm trying to be more British 16:33:44 NOOOOOOOOOOOOOOOOOOOOOO 16:33:46 It's more difficult to make variations on Applejack. 16:33:49 THEIR PURDY 16:33:54 oerjan: But spaced en dashes! 16:34:07 That's classy! 16:34:25 * oerjan didn't really know there was a cross-pond difference there 16:34:29 Technically it should be an en dash surrounded by hair spaces, but *sigh* Unicode hath forsaken us. 16:34:44 (By which I mean "provided everything we need, but it's way too much of a pain to actually use it" :P) 16:34:56 oerjan: Well, you know. Em dashes are so loud and Victorian. 16:35:03 oh. 16:35:22 * oerjan didn't know there was such a time difference, either 16:35:37 oerjan: Well, no, technically what's Victorian is double or triple em dashes :P 16:35:51 It's like ". . ." for ellipses. They rather overdid everything in those days. 16:35:52 naturally. 16:36:07 Maybe we should use ― this! 16:36:17 ― ― ― 16:36:22 Or ⁓ this! 16:36:47 DYK the Unicode name of the underscore is LOW LINE? 16:37:12 U+23E4 ⏤ "STRAIGHTNESS" 16:37:32 U+23E5 ⏥ "GAYNESS" 16:37:45 U+23E6 ⏦ "BISEXUALITY" 16:38:23 using U+23E8 triggers a police search, i assume 16:39:18 Yes, the fearsome DECIMAL EXPONENT SYMBOL ⏨ 16:39:27 oerjan: DYK we're on proggit? 16:40:09 elliott: yes, i mentioned it in the logs (possibly you did too, i didn't read the logs myself) 16:40:26 elliott: OK, time to get those as the new adopted names in the next Unicode revision. 16:40:33 oerjan: Oh, that might be where I saw it. Or was it ais? 16:41:01 RocketJSquirrel: Yes, renaming ⏨ to DECIMAL EXPONENT SYMBOL would be hilarious. 16:42:29 BISEXUALITY actually fits the symbol rather well, me thinks. 16:44:24 http://www.reddit.com/r/programming/comments/rrolt/entropy_a_programming_language_that_forces_you_to/c48bz58?context=2 :P 16:44:29 Symbols are allowed to be in (real world) names, right? 16:44:34 Like, I can be Gregor ⏦ Richards? 16:44:38 I wanna be Gregor ⏦ Richards. 16:45:09 Is it pronounced by saying "Gregor", yelling "BISEXUALITY" at the top of your lungs, and then saying "Richard"? 16:45:32 oerjan: The gayness one isn't bad either, since it's very much a non-straight symbol :P 16:45:33 RocketJSquirrel: Prince thinks so. 16:45:55 Whoa, I just had a real Keanu Reeves thought. 16:46:01 elliott: Yes, that's how it's pronounced. 16:46:03 What character set are the Unicode character names in? 16:46:22 How come they never use lowercase? Isn't that antithetical to the entire "universal character set" thing? 16:46:47 elliott: baudot 16:47:32 I was gonna guess EBCDIC :P 16:48:40 * oerjan learns baud comes from baudot 16:49:28 Whoa, really? 16:49:48 presumably the person, not the charset 16:50:51 another idea: the names might be restricted to the _intersection_ of all known computer character sets :P 16:51:33 I suspect it's just A-Z plus space. 16:51:39 I've never seen anything but that in a character name. 16:51:54 Presumably they figure that any character set which can represent English text at all can manage that. 16:56:10 * oerjan sees in the logs elliott lives up to the wiki policy of no privacy 16:56:48 If you want privacy so desperately, you're PROBABLY a terrorist. 16:57:23 oh it's not _my_ privacy. well i didn't check if i was in it. 16:58:14 admittedly Entropy is probably not the most incriminating page. 16:59:38 -!- tswett_ has changed nick to tswett. 16:59:48 oerjan: *eh* 17:00:03 The privacy I'll try to offer is no disclosure of realnames/emails. 17:00:17 Web server logs, those are fair game. 17:00:34 (I've already violated the realname/email thing by accident anyway >_>) 17:01:48 BTW, I've decided to install the Cite and hopefully Math extensions once MediaWiki 1.19 is out. 17:02:03 I'm going to play around to see if I can get Math working with just MathJax, because I don't want to bother with texvc. 17:02:09 -!- azaq23 has joined. 17:02:25 -!- azaq23 has quit (Max SendQ exceeded). 17:03:11 -!- azaq23 has joined. 17:03:23 oerjan: Have I mentioned that Timwi has more Stack Overflow reputation than me? :( 17:03:54 * oerjan elliott jelly 17:04:21 Wait, only 1,745. 17:04:22 NOT LONG 17:04:58 you don't have more than that already? 17:06:04 isn't that like 9 days of max reputation 17:07:43 oerjan: But elliott isn't Max. 17:07:49 oerjan: I mean, that's the difference. 17:08:20 * elliott went over that score in 7 days. 17:08:33 I've been TOTALLY LAGGING BEHIND lately though. 17:08:43 20,563 17:08:48 vs. my 18,818. 17:09:50 Oh! hammar passed cmccann. 17:10:00 How's that compare to my 14,623,4127043605,557537,545454,43,3,d,43hi,257302monqy,j847402646 karm? 17:10:10 @karma shachaf 17:10:10 shachaf has a karma of 8 17:10:13 @karma- shachaf 17:10:13 shachaf's karma lowered to 7. 17:10:14 @karma- shachaf 17:10:14 shachaf's karma lowered to 6. 17:10:14 @karma- shachaf 17:10:14 shachaf's karma lowered to 5. 17:10:15 @karma- shachaf 17:10:15 shachaf's karma lowered to 4. 17:10:16 @karma- shachaf 17:10:16 shachaf's karma lowered to 3. 17:10:16 @karma- shachaf 17:10:16 shachaf's karma lowered to 2. 17:10:17 @karma- shachaf 17:10:17 shachaf's karma lowered to 1. 17:10:21 I mean on StackOverFlow. 17:10:22 :-( 17:10:30 elliott: That's not a nice thing to do, you know. 17:10:30 @karma- shachaf 17:10:30 shachaf's karma lowered to 0. 17:10:35 shachaf: You should totally drop that and @ignore - elliott. 17:10:40 Wait, it wasn't ignoring me? 17:10:56 * *** Message to #esoteric throttled due to flooding 17:10:57 Oh. 17:11:11 @karma+ shachaf 17:11:11 shachaf's karma raised to 1. 17:11:15 @karma+ shachaf 17:11:15 shachaf's karma raised to 2. 17:11:16 @karma+ shachaf 17:11:17 shachaf's karma raised to 3. 17:11:17 @karma+ shachaf 17:11:18 shachaf's karma raised to 4. 17:11:18 @karma+ shachaf 17:11:19 shachaf's karma raised to 5. 17:11:20 @karma+ shachaf 17:11:20 shachaf's karma raised to 6. 17:11:21 @karma+ shachaf 17:11:21 shachaf's karma raised to 7. 17:11:21 @karma+ shachaf 17:11:22 shachaf's karma raised to 8. 17:11:22 @karma+ shachaf 17:11:22 shachaf's karma raised to 9. 17:11:26 ENJOY YOUR MEANINGLESS INTERNET POINTS 17:11:50 hi monqy 17:11:58 Good GOD how has that guy's answer got 92 points, is it because he used headings? I don't use headings in my answers. 17:12:04 Oh! hammar passed cmccann. <-- * waves the Trondheim flag 17:12:05 I guess I can blame HWN. 17:12:18 oerjan: God bless America. 17:12:27 elliott: Are you a subscriber to HWN? 17:12:47 shachaf: I read it when it comes out by going from /r/haskell. 17:12:54 oerjan: dons is still the top though. 17:13:03 oerjan: By quite a margin. 17:13:14 I'm pretty sure he just spent a year doing nothing but answering SO questions about Haskell or something. 17:13:27 Just like you're doing? 17:13:55 Yes, but I'm less famous! 17:14:03 Anyway, I don't answer SO questions. I *am* SO questions. 17:14:23 i read it when it comes out by going either r/haskell or haskell-cafe, sometimes cursing when they forget to include a link to the web version in the latter. 17:14:31 *+from 17:14:41 HWN is pretty crap, mind you. 17:14:42 *+monqy 17:14:46 I just read it for the quotes. 17:15:00 *+swat shachaf -----### 17:15:07 @slap shachaf 17:15:07 * lambdabot pushes shachaf from his chair 17:15:13 Oooh, nasty. 17:15:17 Just for the quotes by me, right? 17:15:19 @quote shachaf 17:15:20 shachaf says: In order to get the last element of a list, you have to traverse the whole list. This can be an expensive, inefficient, unlazy operation, so you should develop a distaste for it like 17:15:20 the rest of us. 17:15:32 What? That's a terrible quote. 17:15:38 Who @remembered that? 17:15:39 Don't @forget it. 17:15:42 If you do, I'll @remember it again. 17:15:46 Then it'll end up in HWN. 17:15:54 @quote shachaf 17:15:55 shachaf says: Sometimes things are complicated because the domain is complicated. Other times things are complicated because edwardk. 17:15:58 @quote shachaf 17:15:58 shachaf says: Finally an opportunity to use my numerous PhDs in monadology! Anyone need any I/O done in useless academic languages? Eh? Eh? 17:16:04 @quote shachaf 17:16:04 shachaf says: isTrue :: Bool -> Bool; isTrue = unsafeCoerce 17:16:09 OK, that one is good. 17:16:15 * shachaf sighs. 17:16:19 Why can't I have good quotes? 17:16:19 OK, that one is good. 17:16:20 Like 17:16:22 @quote ehird 17:16:22 ehird says: 2009: The Year of the Combinatorial Explosion of Haskell Web Frameworks. Also, the Linux Desktop. 17:16:22 Oops. 17:16:25 @quote elliott 17:16:25 elliott says: i'm here to prove theorems and compile code and I'm all out of code 17:16:29 @quote elliott 17:16:29 elliott says: Top universities now employ people to watch infomercials all day to find the latest mysteries. 17:16:31 @quote elliott 17:16:31 elliott says: i'm here to prove theorems and compile code and I'm all out of code 17:16:32 @quote elliott 17:16:32 elliott says: elliott: now its almost exactly like one of my packages ;) edwardk: no, i'm writing documentation 17:16:44 @quote elliott 17:16:45 elliott says: o'reilly publishes attoparsec tutorial: exactly the same as their parsec tutorial, but 10^-18th the size 17:17:00 @quote elliott 17:17:00 elliott says: I have weird mental spheres that I divide all my coding into and that determine editor and the like 17:17:03 what 17:17:06 @quote elliott 17:17:06 elliott says: ... [a] is more of a control structure than a data structure. 17:17:09 @quote elliott 17:17:09 elliott says: "with a lot of unicode" is like agda's @faq. "yes, agda can do that with a lot of unicode!" 17:17:12 @quote elliott 17:17:12 elliott says: Explicit recursion should generally be avoided. Also, general recursion should be explicitly avoided! 17:17:25 i think that one is the closest i've gotten to a mcbrideism 17:17:35 i think that one is the closest i've gotten to a mcbrideism 17:17:36 oops 17:17:37 Wow, that elliott person sure says a lot of things. 17:17:38 @quote elliott 17:17:38 elliott says: i'm here to prove theorems and compile code and I'm all out of code 17:17:39 @quote elliott 17:17:39 elliott says: a typeclass is nothing without semantics 17:17:41 @quote elliott 17:17:41 elliott says: Explicit recursion should generally be avoided. Also, general recursion should be explicitly avoided! 17:17:42 @quote elliott 17:17:42 elliott says: Array is immutable boxed UArray is immutable unboxed IOArray is mutable boxed IOUArray is an array of debts. 17:17:50 @quote shachaf 17:17:50 shachaf says: In order to get the last element of a list, you have to traverse the whole list. This can be an expensive, inefficient, unlazy operation, so you should develop a distaste for it like 17:17:51 the rest of us. 17:17:52 @quote shachaf 17:17:52 shachaf says: Real programming languages have a hype system instead of a type system. 17:17:59 Hey! 17:18:03 You reused that joke on @! 17:18:04 No fair! 17:18:06 Oh, was I talking about @ in #haskell? 17:18:07 @quote elliott 17:18:07 elliott says: |\/|/-\|-|-|=|\||} is my preferred mappend operator 17:18:13 @quote elliott 17:18:13 elliott says: i'm here to prove theorems and compile code and I'm all out of code 17:18:14 @quote elliott 17:18:14 elliott says: a typeclass is nothing without semantics 17:18:15 @quote elliott 17:18:15 elliott says: Explicit recursion should generally be avoided. Also, general recursion should be explicitly avoided! 17:18:16 @quote elliott 17:18:16 elliott says: o'reilly publishes attoparsec tutorial: exactly the same as their parsec tutorial, but 10^-18th the size 17:18:17 @quote elliott 17:18:17 elliott says: "with a lot of unicode" is like agda's @faq. "yes, agda can do that with a lot of unicode!" 17:18:18 @quote elliott 17:18:18 elliott says: o'reilly publishes attoparsec tutorial: exactly the same as their parsec tutorial, but 10^-18th the size 17:18:19 @quote elliott 17:18:19 elliott says: a typeclass is nothing without semantics 17:18:20 @quote elliott 17:18:20 elliott says: "with a lot of unicode" is like agda's @faq. "yes, agda can do that with a lot of unicode!" 17:18:20 @quote elliott 17:18:21 elliott says: Only two things in the universe are certain: Death, and two of the libraries you've decided to use taking different types of ByteString. 17:18:22 elliott: The part that makes it fair is that @ doesn't exist. 17:18:26 @quote shachaf 17:18:26 shachaf says: isTrue :: Bool -> Bool; isTrue = unsafeCoerce 17:18:28 @quote shachaf 17:18:28 shachaf says: Sometimes things are complicated because the domain is complicated. Other times things are complicated because edwardk. 17:18:30 @quote shachaf 17:18:30 shachaf says: Sometimes things are complicated because the domain is complicated. Other times things are complicated because edwardk. 17:18:32 @quote shachaf 17:18:32 shachaf says: getLine :: IO String contains a String in the same way that /bin/ls contains a list of files 17:18:37 * shachaf sighs. 17:18:38 @quote elliott 17:18:38 elliott says: race condition waiting to happen 17:18:38 @quote shachaf 17:18:38 shachaf says: We used to have a big collection of them but most of them got wiped in the Great Lambdabot Wipe of Every Few Months. 17:18:47 @quote shachaf 17:18:47 shachaf says: boost::lambda: The ultimate error message. 17:18:49 @quote elliott 17:18:49 elliott says: "with a lot of unicode" is like agda's @faq. "yes, agda can do that with a lot of unicode!" 17:18:50 @quote elliott 17:18:50 Enough self-@quoting. 17:18:51 elliott says: Array is immutable boxed UArray is immutable unboxed IOArray is mutable boxed IOUArray is an array of debts. 17:18:52 no 17:18:53 @quote elliott 17:18:53 elliott says: Top universities now employ people to watch infomercials all day to find the latest mysteries. 17:18:54 @quote elliott 17:18:54 elliott says: a typeclass is nothing without semantics 17:18:55 @quote elliott 17:18:55 elliott says: Only two things in the universe are certain: Death, and two of the libraries you've decided to use taking different types of ByteString. 17:18:56 @quote elliott 17:18:56 elliott says: "with a lot of unicode" is like agda's @faq. "yes, agda can do that with a lot of unicode!" 17:18:57 @quote elliott 17:18:57 elliott says: race condition waiting to happen 17:18:58 @quote elliott 17:18:58 elliott says: ... [a] is more of a control structure than a data structure. 17:18:58 @quote elliott 17:18:58 elliott says: Top universities now employ people to watch infomercials all day to find the latest mysteries. 17:19:00 @quote elliott 17:19:00 elliott says: |\/|/-\|-|-|=|\||} is my preferred mappend operator 17:19:11 That's not even an operator. 17:19:17 x 17:19:18 @quote elliott 17:19:18 elliott says: I have weird mental spheres that I divide all my coding into and that determine editor and the like 17:19:21 sigh 17:19:22 @quote ehird 17:19:22 ehird says: 2009: The Year of the Combinatorial Explosion of Haskell Web Frameworks. Also, the Linux Desktop. 17:19:31 i was right about that 17:19:32 i think 17:19:34 when did yesod start 17:19:38 @quote ehird 17:19:38 ehird says: 2009: The Year of the Combinatorial Explosion of Haskell Web Frameworks. Also, the Linux Desktop. 17:19:39 @quote ehird 17:19:39 ehird says: 2009: The Year of the Combinatorial Explosion of Haskell Web Frameworks. Also, the Linux Desktop. 17:19:40 @quote ehird 17:19:40 ehird says: 2009: The Year of the Combinatorial Explosion of Haskell Web Frameworks. Also, the Linux Desktop. 17:19:41 @quote ehird 17:19:41 ehird says: 2009: The Year of the Combinatorial Explosion of Haskell Web Frameworks. Also, the Linux Desktop. 17:19:42 wtf 17:19:45 @quote ehird` 17:19:45 No quotes match. I feel much better now. 17:19:48 @quote ehird_ 17:19:48 No quotes match. That's something I cannot allow to happen. 17:19:50 @quote elliott_ 17:19:50 No quotes match. Maybe you made a typo? 17:19:53 @rq ehird 17:19:53 Not enough privileges 17:20:05 @help rq 17:20:05 help . Ask for help for . Try 'list' for all commands 17:20:09 help what is rq 17:20:14 Things are complicated because edwardk? 17:20:31 yes 17:20:34 @quote shachaf 17:20:35 shachaf says: getLine :: IO String contains a String in the same way that /bin/ls contains a list of files 17:20:36 @quote shachaf 17:20:36 shachaf says: Finally an opportunity to use my numerous PhDs in monadology! Anyone need any I/O done in useless academic languages? Eh? Eh? 17:20:37 @quote shachaf 17:20:37 shachaf says: Finally an opportunity to use my numerous PhDs in monadology! Anyone need any I/O done in useless academic languages? Eh? Eh? 17:20:37 elliott: rq=rc? 17:20:38 @quote shachaf 17:20:39 shachaf says: In order to get the last element of a list, you have to traverse the whole list. This can be an expensive, inefficient, unlazy operation, so you should develop a distaste for it like 17:20:39 the rest of us. 17:20:46 shachaf: Ah, yes. But coppro probably meant something else. 17:20:47 @quote shachaf 17:20:47 shachaf says: You can never escape having learned monads. If you learn two monads, though, you can go back to only knowing one. 17:20:49 Fun! 17:20:51 A new one! 17:21:05 shachaf: That's monoids, though. 17:21:11 (m, m) vs. (m . m). 17:21:12 elliott: No, it's monads. 17:21:15 No. 17:21:18 m (m a) vs. m a 17:21:20 m (m a) is not "two monads". 17:21:24 But (m, m) is "two monoids". 17:21:25 I know. 17:21:28 No it's not. 17:21:31 (If we allow "an X" = "a value of an X".) 17:21:33 It's two values whose type is the same monoid. 17:21:38 Oh piffle. 17:21:39 @quote shachaf 17:21:39 shachaf says: Real programming languages have a hype system instead of a type system. 17:21:40 monoids for a monoid under the operation "consolidate knowledge" 17:21:41 But we don't allow that. 17:21:43 @quote shachaf 17:21:43 shachaf says: @let otherfoolish = not otherwise 17:21:45 @quote shachaf 17:21:45 shachaf says: Finally an opportunity to use my numerous PhDs in monadology! Anyone need any I/O done in useless academic languages? Eh? Eh? 17:21:46 @quote shachaf 17:21:46 shachaf says: Sometimes things are complicated because the domain is complicated. Other times things are complicated because edwardk. 17:21:47 @quote shachaf 17:21:47 shachaf says: Group projects are stupid Try a semigroup project sometime. You need to lose your identity. 17:21:50 @quote shachaf 17:21:51 shachaf says: Sometimes things are complicated because the domain is complicated. Other times things are complicated because edwardk. 17:21:51 @quote shachaf 17:21:52 shachaf says: @let otherfoolish = not otherwise 17:21:52 @quote shachaf 17:21:53 shachaf says: Group projects are stupid Try a semigroup project sometime. You need to lose your identity. 17:21:53 @quote shachaf 17:21:53 shachaf says: getLine :: IO String contains a String in the same way that /bin/ls contains a list of files 17:21:55 @quote shachaf 17:21:55 shachaf says: @let otherfoolish = not otherwise 17:21:56 Hmph. 17:21:57 elliott: Enough. 17:21:58 @quote coppro 17:21:58 No quotes match. I can't hear you -- I'm using the scrambler. 17:22:01 @quote oerjan 17:22:01 oerjan says: i only do impractical things 17:22:06 Wait, lambdabot knows oerjan quotes? 17:22:07 @quote oerjan 17:22:07 oerjan says: i only do impractical things 17:22:08 @quote oerjan 17:22:08 oerjan says: i only do impractical things 17:22:10 Okay, quote. 17:22:52 @quote edwardk 17:22:52 edwardk says: cmccann: the instances list haddock generates is now a thing of majesty elliott: welcome to my world 17:22:54 @quoerjan 17:22:54 Unknown command, try @list 17:22:59 Ha! 17:23:04 That edwardk quote is also a ME quote. 17:23:06 It is never enough. 17:23:15 @quote .*shachaf.* 17:23:15 djahandarie says: Group projects are stupid Try a semigroup project sometime. You need to lose your identity. 17:23:22 I like how that's a dupliacte. 17:23:24 Huh? 17:23:24 dupciatec 17:23:31 dduupplliiccaattee 17:23:31 @forget djahandarie Group projects are stupid Try a semigroup project sometime. You need to lose your identity. 17:23:31 Done. 17:23:36 @quote .*shachef.* 17:23:36 No quotes match. That's something I cannot allow to happen. 17:23:40 @quote .*shachaf.* 17:23:40 @quote .*elliot.* 17:23:40 Eduard_Munteanu says: * Eduard_Munteanu considers coining "Sufficiently advanced category theory is indistinguishable from trolling" @remember Eduard_Munteanu [snip] ... 17:23:40 coined Aw.. but I paraphrased shachaf on some other stuff. @forget Eduard_Munteanu [snip] 17:23:40 DCliche says: @remember elliott @remember @remember @remember 17:24:00 @quote .*shachaf.* 17:24:00 jmcarthur says: What have [SPJ and JaffaCake] ever done for Haskell? evil mangler? 17:24:13 @quote .*elliot[^t].* 17:24:13 No quotes match. :( 17:24:17 @quote .*eliott.* 17:24:18 No quotes match. And you call yourself a Rocket Scientist! 17:24:19 @quote .*eliot.* 17:24:19 No quotes match. And you call yourself a Rocket Scientist! 17:24:25 @quote .*ShaChaf.* 17:24:25 mauke says: mauke: EBCDIC? shachaf: ah, the data encryption standard invented by IBM? 17:24:33 @quote .*sha chaf.* 17:24:34 No quotes for this person. Have you considered trying to match wits with a rutabaga? 17:24:44 @quote goat 17:24:44 gwern says: "sm_: go fornicate yourself with a goat!" "sm_: er. that was for someone else" 17:24:54 What a gwern quote. 17:25:20 What do you call a rutabaga with CAP_SYS_ADMIN? 17:25:39 @quote CAP_SYS_ADMIN 17:25:39 No quotes match. Sorry. 17:25:43 @quote rutabaga 17:25:43 No quotes match. It can only be attributed to human error. 17:25:45 @quote lambdabot 17:25:45 lambdabot says: I know nothing about wadler. 17:25:52 elliott: The answer is "rootabaga". 17:26:17 shachaf: :( 17:26:22 oerjan: Kick oerjan. Then kick shachaf. 17:26:24 @quote :( 17:26:24 Plugin `quote' failed with: regex failed: (ReturnCode 8,"Unmatched ( or \\(") 17:26:27 @quote :\( 17:26:27 fasta says: Ok, this is great, now it all appears to work. :( 17:26:29 @quote :\( 17:26:30 augur says: Saizan: theres someone in here named codensity i see im being stalked by CT concepts i dont understand :( it happens - Saizan is now known as kan_ 17:26:30 extension * kan_extension stares at augur AHHHHHH - augur [~augur@129.2.129.32] has quit [] He was never heard from again. 17:26:35 @quote :\( 17:26:36 br1 says: un banana me abrio la puerta en la cara y me rompio un pedal de la bici :( 17:26:42 un banana me abrio la puerta en la cara y me rompio un pedal de la bici :( 17:26:43 @quote :\( 17:26:44 lispy says: I think communicating with aliens will make unicode obsolete :( 17:26:46 @quote :\( 17:26:46 lispy says: I think communicating with aliens will make unicode obsolete :( 17:26:46 @quote :\( 17:26:47 SyntaxNinja says: You'd be surprised how hard is to hire haskellers :( They're all like, "Yeah, I'll come work for you, and by 'come' I mean stay here and work remotely and by 'work for you' I mean 17:26:47 I'll keep doing what I'm doing." ;) 17:27:20 Is *that* why they're not making any progress on that iPhone game? 17:27:27 @quote :\( 17:27:27 puusorsa says: do not try this in a shell: :() { :&:; } ;: 17:27:30 @quote :\( 17:27:30 x11 says: -- this assumes bytes are 8 bits. I hope X isn't more portable than that :( 17:27:45 @quote :\( 17:27:45 lispy says: I think communicating with aliens will make unicode obsolete :( 17:27:46 @quote :\( 17:27:46 augur says: Saizan: theres someone in here named codensity i see im being stalked by CT concepts i dont understand :( it happens - Saizan is now known as kan_ 17:27:47 extension * kan_extension stares at augur AHHHHHH - augur [~augur@129.2.129.32] has quit [] He was never heard from again. 17:27:47 @quote :\( 17:27:48 puusorsa says: do not try this in a shell: :() { :&:; } ;: 17:27:48 @quote :\( 17:27:48 lispy says: I think communicating with aliens will make unicode obsolete :( 17:27:49 @quote :\( 17:27:49 sm says: if this url is infinite, I'm screwed :( 17:27:50 @quote :\( 17:27:51 fasta says: Ok, this is great, now it all appears to work. :( 17:27:55 @quote :\) 17:27:55 monochrom says: Absolute0> copumpkin: do you give out free pumpkins on halloween? :) monochrom> I think copumpkin takes in free pumpkins. 17:27:58 @quote :\) 17:27:58 Cale says: Inheritance? Inheritance is broken, anyway :) 17:28:02 @quote :\) 17:28:02 Cale says: Inheritance? Inheritance is broken, anyway :) 17:28:03 @quote :\) 17:28:03 monochrom says: That does not explain why people struggle with Haskell, a language that is a clean break from other computer languages. However, I can also offer a way out: people preconceive 17:28:03 Haskell to be "just another computer language", and so they are tricked. If you sold it as "the mother tongue of Martians", perhaps they'll actually pick it up comfortably. :) 17:28:20 @kuote .*norway.* 17:28:20 No quotes match. Listen, broccoli brains, I don't have time to listen to this trash. 17:28:25 @kuote broccoli 17:28:26 lambdabot says: Listen, broccoli brains, I don't have time to listen to this trash. 17:28:39 @quote poop 17:28:40 pbunbun says: "Lower, lower, LOL YOU FAILED AND NOW IT'S IN YOUR POOPER" 17:28:51 @forget pbunbun "Lower, lower, LOL YOU FAILED AND NOW IT'S IN YOUR POOPER" 17:28:51 Done. 17:28:53 @quote poop 17:28:53 byorgey says: ⊥.... is a party pooper 17:28:56 @quote poop 17:28:56 pooper says: poop 17:29:02 Well that's a good quote. 17:29:11 "poop" -- pooper. 17:29:16 elliott: Speaking of operators, http://www.youtube.com/watch?v=tiIomFNNNxo 17:29:39 No, fuck you, I don't need that in my head. 17:29:54 It's a good song. 17:30:07 wtf, I can now do my tax returns "in the app" 17:30:17 "it's a good song" -- "olsner" 17:30:30 shachaf: it is! 17:30:48 the neverhood soundtrack is awesome 17:31:12 http://www.youtube.com/watch?v=dSY_d_Gz8Qc is a good song. 17:33:05 "I put 'em in my hat, and I eat 'em just like that; I put 'em in my ears and in my shoes... / I put 'em in my pants, and I do a little dance; it always seems to take away the blues..." 17:33:27 -- potatoes, tomatoes, gravy and peas "good song" potatoes, tomatoes, gravy and peas 17:33:38 http://www.youtube.com/watch?v=paZHrGxK7ig good son,g 17:34:00 Oops, it's late o'clock. 17:34:02 @time 17:34:05 Local time for shachaf is Wed Apr 4 10:33:30 2012 17:34:08 I need to be somewhere at 11:00. :-( 17:34:48 Being places sucks. 17:35:04 So does being awake at 11:00. 17:35:23 Man, existence. 17:35:25 So lame. 17:35:43 exiselevence 17:36:40 * shachaf vanishes in a puff of orange smoke. 17:38:23 -!- zzo38 has quit (Remote host closed the connection). 17:40:44 shachaf: hmm, did you accidentally zzo38 instead of yourself? 17:41:52 @quote olsner 17:41:52 olsner says: nah, SkyNet is just a zygohistomorphic prepromorphism, nothing fancy 17:41:54 @quote olsner 17:41:54 olsner says: pun indented 17:41:57 @quote olsner 17:41:57 olsner says: "... take it with a grain of salt. A big grain. Like the kind that they strap to the sides of mules so that they can get it out of the salt mine." 17:41:59 @quote olsner 17:41:59 olsner says: pun indented 17:42:00 @quote olsner 17:42:01 olsner says: "... take it with a grain of salt. A big grain. Like the kind that they strap to the sides of mules so that they can get it out of the salt mine." 17:42:01 @quote olsner 17:42:01 olsner says: "... take it with a grain of salt. A big grain. Like the kind that they strap to the sides of mules so that they can get it out of the salt mine." 17:42:02 @quote olsner 17:42:02 olsner says: pun indented 17:42:03 @quote olsner 17:42:03 olsner says: < kmc> i think 250 milliolegs is enough to kill an elephant < olsner> kmc: ... to kill an elephant - in the type system! 17:42:16 ur quotes suk 17:42:22 those are not all my quotes 17:42:22 a[art frp, tje omdemted one 17:42:25 that waone was good 17:42:28 @quote olsner 17:42:29 olsner says: a mind won't be enough, you need a comind to go with it 17:42:31 @quote olsner 17:42:31 olsner says: a mind won't be enough, you need a comind to go with it 17:42:32 @quote olsner 17:42:32 olsner says: hmm, so perl basically has all harmful features ever invented? 17:42:33 @quote olsner 17:42:34 olsner says: shapr: 2eyb6ard 0a5ntenance 17:42:38 @quote olsner 17:42:39 olsner says: "... take it with a grain of salt. A big grain. Like the kind that they strap to the sides of mules so that they can get it out of the salt mine." 17:42:40 @quote olsner 17:42:40 olsner says: "... take it with a grain of salt. A big grain. Like the kind that they strap to the sides of mules so that they can get it out of the salt mine." 17:42:40 @quote olsner 17:42:41 olsner says: nah, SkyNet is just a zygohistomorphic prepromorphism, nothing fancy 17:42:41 @quote olsner 17:42:42 olsner says: most everything gives nicer everything than perl 17:42:42 @quote olsner 17:42:42 olsner says: pun indented 17:42:43 @quote olsner 17:42:43 olsner says: hmm, so perl basically has all harmful features ever invented? 17:42:44 @quote olsner 17:42:44 olsner says: pun indented 17:42:48 are u sure 17:42:50 maybe now you got all of them 17:47:10 oerjan: r u science 17:48:22 haf science, haf mad 17:49:06 I think I like the keyboard maintenance quote and the ones that hate perl 17:50:02 2eyb6ard 0a5ntenance 5s very hard t6 d6 17:50:22 * oerjan swats olsner for hating perl -----### 17:50:41 the mule salt grain quote is probably from http://www.rpg.net/reviews/archive/14/14567.phtml 17:51:55 2eyb6ard 0a5ntenance and pun indented are funny 17:51:56 rest aren't 17:53:56 oh, that's what "lacuna" means? 18:00:22 oerjan: are you robot 18:00:50 do robots get fever 18:01:11 yes 18:01:20 probably, then 18:01:40 -!- augur has quit (Remote host closed the connection). 18:02:00 I cante *guarante* im fish. but 18:02:25 you're frequently in deep water 18:04:11 oerjan: what is it with sideways panama 18:04:34 elliott: continents collided. it got messy. 18:04:48 oerjan: did you hear about ais' new bf derivative 18:05:05 i may have already forgotten it 18:05:20 22:32:22: tape-based, with < > + - from BF, and a "jump to start if nonzero" for program control 18:05:27 [...] 18:05:28 22:34:56: ais523: I don't think there's any way to meaningfully skip code 18:05:28 22:35:07: elliott: exactly, that's the whole point 18:05:28 22:35:11: you have to undo it instead 18:05:28 22:35:12: all you can do is go back to the start, which basically means that at the first "branching" point, you're stuck 18:05:29 22:35:16: < > + - are all reversible 18:05:31 22:35:20: hmm... 18:05:33 22:35:39: OK, put this on the wiki, it's great 18:05:39 the question is obvious :) 18:05:53 ...i guess. 18:06:13 * elliott thinks it's sub-TC 18:06:40 wait, if _non_-zero? if it was if _zero_, i could probably get the collatz functions working :( 18:07:04 Everyone here is aware of 0x10^c. 18:07:15 That is an imperative statement. 18:07:26 Yes, we had a big argument about it a day ago. 18:07:45 oerjan: well that doesn't mirror BF's loop conditional 18:07:48 It has 64 kibbies of memory, right? 18:08:24 Oh, the spec is out. 18:08:31 Yep. 18:08:45 * 16 bit unsigned words 18:08:45 * 0x10000 words of ram 18:08:55 128 Kio, to be precise. 18:09:06 That's... 64 Kio, isn't it? 18:09:15 Sure, if you're unable to multiply. 18:09:34 Granted. 18:09:36 0x10000 * 16 bits = 0x100000 bits = 128 Kio. 18:10:02 I am excellent at noticing details. 18:12:52 oerjan: also, your favourite player is about to reach 40k. 18:13:01 * elliott SO commentator 18:13:06 wat 18:14:53 ah right 18:15:55 hmm... if you have a total language, and you want to add a Partial monad, what primitive(s) do you need to add beyond the monad primitives? 18:16:03 I think it's just mfix :: (a -> Partial a) -> Partial a 18:16:06 but I'm not sure 18:16:19 (and perhaps there's a simpler primitive, if that is sufficient) 18:16:50 -!- nortti has joined. 18:17:23 oh, is that enough to write e.g. fact? 18:17:29 I think it's not, because you need the fix around the /function/ 18:17:32 rather than the result 18:17:44 but Partial (Nat -> Nat) isn't quite right, it'd be Partial (Nat -> Partial Nat) or something 18:17:45 (Partial a -> Partial a) -> Partial a, perhaps? 18:17:59 whereas you really want Nat -> Partial Nat 18:18:01 oerjan: hm perhaps 18:18:21 oerjan: er I doubt that, that's just fix 18:18:24 i'm not sure how this works with laziness at all 18:18:31 oh, forget about laziness 18:18:37 it's a total language, so evaluation order is irrelevant 18:18:58 um but (a -> Partial a) -> Partial a only works with laziness, i think 18:19:23 oerjan: well you obviously can't define Partial within the language itself, I think 18:19:25 it'd be primitive, like IO 18:19:26 because (a -> a) -> a in haskell requires laziness 18:19:36 or hmm, yes you can 18:19:56 but I don't know how to implement mfix for that 18:20:01 this is confusing :( 18:20:16 elliott: i thought the codata Partial a = Now a | Later (Partial a) was sort of standard 18:21:01 right, that's in fact exactly what i just typed out 18:21:08 then i realised that i've defined that in haskell, and gave up on writing a MonadFix instance for it 18:21:16 so perhaps mfix /is/ wrong 18:22:18 hmm... 18:22:30 the thing is if you have (a -> Partial a), you have no way to apply it without getting an a, which you never get. oh hm there's that monad stuff... 18:22:51 fact 0 = Now 1; fact (n+1) = ((n+1) *) <$> fact n 18:22:59 wait, that's not right 18:23:02 fact 0 = Now 1; fact (n+1) = Later $ ((n+1) *) <$> fact n 18:23:06 yep, that'd pass the termination checker 18:23:18 the question is how to write it without the awkward explicit Now/Later 18:23:22 later :: Partial a -> Partial a isn't enough 18:23:27 if it was, you could just use id 18:23:33 or, hmm 18:23:41 now i've just confused myself... 18:25:47 mfix f = f <$> Later (mfix f) 18:26:47 that will just give Later $ Later $ ... 18:27:31 mfix f = Later $ f (mfix f); mfix :: (Partial a -> Partial a) -> Partial a 18:27:45 hm 18:27:53 is mfix really OK there? 18:27:57 oh, yes 18:28:03 wait, no, it's not 18:28:07 what if f peels off a Later constructor? 18:28:11 you'll get Later _|_ 18:28:25 erm rather, peels off more than one I guess 18:28:33 *sigh* 18:28:42 it would help if i had an intuition of how totality checkers work :) 18:28:46 esp. in presence of codata 18:28:59 me too 18:29:53 possibly the Partial monad adds essential strictness... 18:30:02 especially i've confused myself wrt. later :: Partial a -> Partial a; later = Later 18:30:09 is it *really* not ok to substitute Later -> later in all code? 18:30:19 surely the totality checker "remembers" what definitions do so that that kind of substitution becomes legal... 18:30:34 "surely" 18:30:57 surely it has to make simplifications to avoid blowing things up all the time 18:31:20 oerjan: well, yes, but not doing that destroys /referential transparency/ 18:31:28 in the most basic sense 18:32:04 probably typing rules always do that :P 18:32:36 oerjan: except the types are the same here... 18:32:59 (I don't buy that typing rules do that, that's just a misconception caused by the fact that the application of type lambdas is left implicit by most languages) 18:33:00 but the type Partial a -> Partial a is not sufficient information for the totality checker 18:33:08 (i.e. Later @Int :: Partial Int -> Partial Int) 18:33:13 oerjan: well duh 18:33:29 oerjan: that's why i'm saying, it surely must record more, or examine the definition, or such... 18:33:37 (maybe we need constructor peeling as part of the types...) 18:33:52 ooh i only need two more accepted answers today to break 300 18:34:25 when did you lose that 200 limit... 18:35:02 oerjan: answers being accepted (+15) and bounties are immune from the rep cap, it's just on upvotes 18:35:22 OTOH, upvotes are a lot easier to come buy than the others 18:35:41 the top few users make like 400/day 18:35:41 -!- augur has joined. 18:36:03 elliott: You're *buying* upvotes? 18:36:08 this guy is insane and figured out how to get up to over 1000/day by doing a bunch of bounties: http://stackoverflow.com/users/517815/mrgomez?tab=reputation 18:36:16 shachaf: Oops. 18:36:19 *bouy 18:36:34 "i buy upvotes" -- elliott "i buy upvotes" hird 18:36:57 @time 18:36:57 Local time for elliott is Wed Apr 4 19:36:52 18:36:59 @time oerjan 18:37:00 Local time for oerjan is Wed Apr 4 20:36:27 2012 18:37:08 happy christmas eve 18:37:22 @time elliottcable 18:37:35 @time hi 18:38:11 -!- oerjan has quit (Quit: AAAAAAAA THE PAIN (well, a bit)). 18:38:23 @time clog 18:38:24 Local time for clog is Wed Apr 4 11:38:12 2012 18:39:44 @time shachef 18:40:21 shachaf: Remember http://ompldr.org/vZDhvag/shachef.png? 18:41:16 elliott: Yes. 18:41:28 shachaf: I don't. 18:41:38 elliott++ # artist 18:43:50 shachaf++ # chef 18:45:43 oerjan missed it! 18:46:06 elliott: Is clog named after the Neverhood character? 18:46:28 That bot's nick should definitely be klogg. 18:46:40 www.osnews.com/comments/25762 oh god why!? 18:47:45 * $DEITY 18:50:42 -!- pikhq has joined. 18:50:43 -!- pikhq_ has quit (Ping timeout: 244 seconds). 18:51:15 shachaf: NO :-| 18:52:13 I don't dot he "breathin" thing okaye . 18:52:23 elliott: Did you ever see the BAD ENDING in the Neverhood? 18:52:49 I don't want to. 18:52:59 If I did I've probably forgotten it by now. 18:59:47 shachaf: Have you ever DESTROYED a KITTEN? 19:00:44 I mean, I haven't. 19:01:02 elliott: DESTROYED its sense of DIGNITY by FUZZING it? 19:05:38 yes 19:14:26 @yow 19:14:27 Couldn't find fortune file 19:15:12 `fortune 19:15:16 ​/i \ //, \ ///i \ ,/ ).'i \ | )-i \ | )i \ ' )i \ / |- \ _.-./-. /z_ \ `-. >._\ _ );i. \ / `-'/`k-'`u)-'` \ / 19:15:35 ah 19:15:42 `addquote `fortune ​/i \ //, \ ///i \ ,/ ).'i \ | )-i \ | )i \ ' )i \ / |- \ _.-./-. /z_ \ `-. >._\ _ );i. \ / `-'/`k-'`u)-'` \ / 19:15:45 836) `fortune ​/i \ //, \ ///i \ ,/ ).'i \ | )-i \ | )i \ ' )i \ / |- \ _.-./-. /z_ \ `-. >._\ _ );i. \ / `-'/`k-'`u)-'` \ / 19:15:48 @yaw 19:15:48 Couldn't find fortune file 19:15:51 @ying 19:15:51 pong 19:15:52 @yang 19:15:52 Maybe you meant: ping yarr 19:15:54 @yarr 19:15:55 I'll keel haul ya fer that! 19:17:36 does anyone have any idea what the fuck HackEgo's output is supposed to mean? 19:19:16 `fortune 19:19:19 millihelen, n.: \.The amount of beauty required to launch one ship. 19:20:42 `fortune 19:20:45 Amar-te trama. \ -- palndromo 19:28:45 -!- nortti has quit (Quit: nortti). 19:37:25 Someone unupvoted me. :( 19:39:09 -!- variable has quit (Ping timeout: 260 seconds). 19:54:26 @time 19:54:27 Local time for elliott is Wed Apr 4 20:54:21 19:54:48 Yesss, 4 hours left to get 2 accepts 19:55:46 -!- azaq23 has quit (Quit: Leaving.). 19:56:43 -!- azaq23 has joined. 19:57:59 shachaf: Astrophysics, right? 20:00:12 -!- azaq23 has quit (Client Quit). 20:08:47 -!- variable has joined. 20:11:43 shachaf: Right? 20:17:06 -!- nortti has joined. 20:18:38 who is selling that advertised infinite tape? 20:22:28 Infinite tape? It will begin at the factory and end at my place and they’ll keep printing more whenever i pull it? 20:25:16 nortti: RocketJSquirrel, I think. 20:27:39 wasn't it oerjan's tape? 20:27:59 hmm, doesn't mean RocketJSquirrel can't sell it I guess 20:33:48 Do you believe in *dogs* and *arms*? And *candelabra*? 20:34:47 no, but candelabras believe in me - for I am their god 20:39:58 * Sgeo is suddenly reminded of an FRC round 20:40:39 olsner: "Candelabrum" or "candelabron", silly. 20:40:42 "Candelabra" is plural. 20:42:13 candelabrons then 20:44:03 -!- derdon has joined. 20:46:40 olsner: Er, I meant "candelabra". 20:46:49 That was the singular. Thing. Help. 20:48:17 -!- nortti has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )). 20:50:21 candelabrums is the only alternative left I haven't tried? 20:50:35 candlebrooms 20:50:37 no its 20:50:38 candcelabra 20:50:39 theatste 20:50:41 the plurale 20:50:42 *cnadelrb 20:50:44 *bbbbbbbbb 20:51:19 elliott: Astrophysics? 20:52:01 http://kaizer.se/wiki/log/post/C++_constexpr_foldr/ 20:52:05 shachaf: Yeah, man!! 20:52:10 @tyme 20:52:10 Maybe you meant: time type 20:52:12 @time 20:52:12 Local time for elliott is Wed Apr 4 21:52:07 20:52:19 @thyme 20:52:19 Maybe you meant: time type 20:52:36 @hi lambdabot 20:52:37 No match for "lambdabot". 20:52:40 @hi 20:53:41 @hi 20:53:43 @die 20:53:44 unexpected end of input: expecting number 20:55:20 @die gnu autotools 20:55:20 unexpected "g": expecting number 20:59:24 "My question is when I print out the numbers till a precision of 36 bits, why are the numbers, 0 , 0.5 and 1.0 represented exactly, wherars the other numbers seem to have some garbage numbers placed at the end?" 20:59:32 Stack Overflow should ban qusetions about floating point. 21:03:29 you should answer something about 32-bit architecture and how 4 undefined bits get included ... he was just lucky the undefined bits were 0 21:04:02 Then I'd lose rep!!! 21:04:13 use your sock puppets then 21:05:08 ;__; 21:12:01 -!- Phantom_Hoover has joined. 21:12:41 elliott, I see esolangs is mainstream. 21:12:41 Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them. 21:14:09 Also you have now spread the knowledge that there is such a thing as intjforum.com to me as well. 21:14:17 I don't like you. 21:14:28 :} 21:15:06 Phantom_Hoover: obama is interviewing seolangs tomorrow. hes askin the tough questions. askin, do we really need another bf deriavtive 21:15:18 can i answer 21:15:45 no 21:15:49 hes not inviewing ph 21:15:52 hes inviewing esolangs 21:16:37 i am esolangs 21:22:51 oh 21:22:56 you are many bf derivative then 21:23:00 rip Phantom_Hoover 21:23:03 aaaaaaaaaaaaaaaa 21:23:05 died of autobrainbrickening 21:50:53 -!- augur has quit (Remote host closed the connection). 21:53:35 -!- ais523 has joined. 21:53:43 American ads are so awful. 21:57:23 @messages 21:57:23 You don't have any new messages. 21:59:30 hi ais523 21:59:32 hi Phantom_Hoover 21:59:34 hi Phantom_Hoover 21:59:35 hi ais523 21:59:42 hi * 22:00:05 & 22:01:18 -!- Patashu has joined. 22:03:31 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 22:04:06 -!- azaq23 has joined. 22:04:27 -!- Phantom_Hoover has joined. 22:06:24 hi Phantom_Hoover 22:07:08 autobrickbrain hoover 22:07:22 no olsner 22:07:27 i am now enlighten 22:07:33 i am the brick 22:07:36 and i am the brain 22:07:46 who's the auto? 22:08:05 Deewiant 22:08:10 maybe that should be in german though... dann wer ist das Auto? 22:09:12 wir fahren fahren fahren etc. 22:10:09 `addquote no olsner i am now enlighten i am the brick and i am the brain 22:10:12 837) no olsner i am now enlighten i am the brick and i am the brain 22:10:17 Phantom_Hoover: does this mean that if I create a BF derivative, you'll hit yourself? 22:11:09 no 22:11:10 -!- augur has joined. 22:11:11 i will 22:11:15 Phantom_Hoover: he already did tho 22:11:18 brickbrain it from reality itself 22:11:20 yesterday 22:11:22 but 22:11:23 its 22:11:23 good 22:11:34 22:32:22: tape-based, with < > + - from BF, and a "jump to start if nonzero" for program control 22:11:34 [...] 22:11:34 22:34:56: ais523: I don't think there's any way to meaningfully skip code 22:11:34 22:35:07: elliott: exactly, that's the whole point 22:11:34 22:35:11: you have to undo it instead 22:11:35 22:35:12: all you can do is go back to the start, which basically means that at the first "branching" point, you're stuck 22:11:38 22:35:16: < > + - are all reversible 22:11:40 22:35:20: hmm... 22:11:42 22:35:39: OK, put this on the wiki, it's great 22:11:50 elliott: I started putting it on the wiki 22:11:53 but forgot to submit 22:11:58 but then you took an aaaaaaaaaaaaaaargh 22:12:10 elliott: is that a Skyrim reference reference? 22:12:54 yes 22:13:27 "You've earned the "Strunk & White" badge. See your profile." 22:13:28 GOSHE 22:14:30 an achievement? on what website? (I'm guessing a website from context) 22:14:37 oh, and I'm guessing stackoverflow 22:14:57 Strunk/White 22:14:58 Aww yeah 22:16:00 ais523: yes (the badges are worthless tho who cares about those) 22:16:07 ps strunk + white sux 22:20:06 pps more like strunk n SHITE 22:21:09 elliott: surely you're not /that/ bad at trolling? 22:21:41 ais523: bad enough to make u ask that TROLLD 22:21:50 * elliott stands by original sux comment though 22:22:28 OK, for some reason Henry's even *slower*. 22:22:41 I can barely run Multiwinia or Defcon any more. 22:22:50 I guess Vax sucked out the fast? 22:23:17 hoovers hoovering hoovers is an abomination against god 22:24:14 Well how do you think hoovers are cleaned. 22:25:57 DIVINE INTERVENTION 22:26:44 @time 22:26:45 Local time for elliott is Wed Apr 4 23:26:39 22:26:47 @time Phantom_Hoover 22:26:47 Local time for Phantom_Hoover is Wed Apr 4 22:23:16 22:26:51 What time is it in America, Hoover? 22:27:49 Half six. 22:28:11 America... is weird. 22:28:48 half six? so it's three then? 22:42:14 Ha, I just corrected an SO moderator and they deleted their comment *and* mine. 22:42:26 THE PUBLIC WILL NEVER KNOW 22:46:41 -!- oerjan has joined. 22:48:04 hi oerjan 22:48:09 low oerjan 22:48:52 oerjan missed it! <-- missed what? 22:49:10 it 22:49:19 oh 22:49:38 (trondheim) 22:51:58 trondheim is all around us. well some of us. 22:52:22 * oerjan assumes elliott isn't trying to make sense 22:53:28 40k 22:59:41 -!- Nisstyre has quit (Ping timeout: 246 seconds). 22:59:47 @time 22:59:47 Local time for elliott is Wed Apr 4 23:59:41 22:59:54 ONE ACCEPT IN ONE HOUR 22:59:56 can i do it oerjan 23:01:20 yes. but _will_ you? 23:01:39 do or do not 23:01:43 there is no will 23:02:34 indeed. 23:05:16 i wonder if i can pass daniel soon 23:05:20 oerjan: ps by trondheim 40k i meant hammar 23:05:30 it am like the biggest sportses win and u miss it 23:06:06 sheesh you know i don't care about sport 23:06:18 ... 23:06:23 oerjan: STACK OVERFLOW YOU BLITHERING MORON 23:06:25 >_< 23:06:34 the thing i told you about literally right before you left and you waved a trondheim flag :P 23:06:38 i sense much anger in you. 23:06:49 at least I didn't call you a blithering mormon. 23:07:05 (that's reserved for mitt romney) 23:07:37 hm, trondheim, 40k, hammar, warhammer 40k, coincidence? WE ARE ALL DOOMED! 23:08:04 elliott@solidity:~$ sudo wc -l /var/log/nginx/access.log.1 23:08:04 41163 /var/log/nginx/access.log.1 23:08:04 elliott@solidity:~$ sudo wc -l /var/log/nginx/access.log 23:08:04 78164 /var/log/nginx/access.log 23:08:05 this is your server. 23:08:08 this is your server on proggit. 23:08:10 any questions? 23:08:23 (and there's still some 7 hours left before the log rolls over!) 23:08:36 50M/var/log/nginx 23:08:36 whew 23:08:43 yes, are those over the same time period? 23:09:27 or is the first everything _before_ today 23:10:02 or wait hm 23:10:20 it's just a different day i guess 23:11:00 oerjan: .1 is yesterday 23:11:06 it rolls over at 06:00 UTC 23:11:22 sounds like a strangely temporary numbering scheme 23:11:35 oerjan: well it's log rotation... every day all the archived logs get their number increased 23:11:43 ok 23:11:46 and access.log becomes access.log.1 and access.log becomes the new one 23:11:57 (and access.log.2 onwards are kept gzipped) 23:11:59 currently we're up to access.log.47.gz 23:12:28 so we can deduce the rotation is probably more than 32 bit. 23:12:52 Why not just.. 23:12:56 * oerjan sidles away carefully 23:12:56 rm -r access.log.*.gz 23:13:00 Well. 23:13:01 Just rm 23:13:03 No need for a -r 23:13:05 Madoka-Kaname: ...Why would I do that? 23:13:12 I dunno! 23:13:13 "Why not just... rm -r /srv/esolangs.org?" 23:13:21 Maybe 'cuz I don't remove data without a reason...? 23:23:45 oerjan: hi. welcome to 23:24:35 thanks. what is 23:25:01 oerjan: it's 23:25:18 oh, i was hoping it was more like 23:25:39 oerjan: it can be. but beware of the 23:26:28 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 23:26:57 oerjan: it is invariably 23:27:12 sorry, i'm busy being eaten by a 23:27:56 oerjan: what a coincidence! I'm a 23:29:18 in that case, could you please 23:30:13 oerjan: only on 23:31:26 but that's 23:31:39 -!- NSQX has joined. 23:33:48 * Sgeo breathes 23:34:10 Sgeo: is that a new record? 23:34:24 assuming you weren't breathing before 23:34:42 Breathing is so 2011. 23:38:16 [crickets] 23:39:07 We all died. Try again later. 23:39:38 2011, a great year for breatharianism 23:40:56 -!- david_werecat has joined. 23:41:19 hi 23:42:30 hi david_werecat 23:43:03 -!- davidwerecat has joined. 23:43:11 -!- davidwerecat has quit (Client Quit). 23:43:26 Hello 23:43:27 {{Unblock}} 23:43:40 NSQX: hi 23:44:02 NSQX: do you understand what it is you've been doing wrong? 23:44:26 If an administrator just unblocks me I will continue editing [[UniCode]] 23:44:32 in what way? 23:44:41 if you're just adding a bunch of stub commands, that is not a useful thing to do 23:44:42 a persuasive argument 23:45:05 as everyone knows, [[UniCode]] desperately needs edits 23:45:32 yeah that han unification needs some undoing 23:46:02 I'll just take one day to add all 65536 characters to the table. 23:46:12 can you type that fast? 23:46:24 NSQX: Your bot has looked up the properties of the non-existent page [[UniCode/0]] in the web server logs. Can you explain why it's doing that, since we've told you nobody is allowed to run bots that do editing without permission? 23:46:40 NSQX: what would be the point unless you have meanings for all of them? 23:46:41 And multiple people have already explained that it's not practical or desired to add all Unicode characters to a single page. 23:46:44 large autogenerated pages are pointless 23:47:27 For someone to be unblocked early, the admins have to be convinced that the user understands the reason they're blocked, and has resolved to not repeat such behaviour again. Unfortunately, I don't see either of that. 23:49:48 NSQX: also, there's more than 65536 unicode characters, as multiple people have also told you 23:50:14 so the resulting page would be even bigger and even more of a problem for the server 23:50:31 elliott, do I have permission to make a bot to edit pages automatically? It'll add rainbows and sparkles to random pages. 23:50:51 Madoka-Kaname: that's probably better done at the CSS level 23:50:58 True 23:52:10 NSQX: anyway, if you continue filling up UniCode with autogenerated information rather than /useful/ information after the block expires, you'll just end up being blocked again 23:53:04 Am I allowed to manually autogenerate? 23:53:12 Python console isn't autogeneration, right? 23:53:20 It's, uh, an extension of my brain. 23:53:32 Just like a keyboard is an extension of my normal speech capabilities. 23:53:33 Then, we first have to think of what the UniCode instructions will do, but that is 65536 different instructions to think of. 23:53:40 and there are fewer than 65536 characters in the first 2^16 bits of Unicode, too 23:53:50 er first 2^16 codepoints >_< 23:53:52 I highly doubt you can think of 65536 distinct instructions for a language. 23:53:55 And there's no point to doing so. 23:54:07 if we work together 23:54:09 we can do anything 23:54:15 well it's certainly a possible collaborative project, but that isn't the issue here 23:54:21 if we work together we can understand basic properties of unicode? 23:54:22 Except figure out 65536 distinct instructions 23:54:30 NSQX: it's perfectly OK for [[UniCode]] to get filled out incrementally, as commands are given meaning 23:54:32 proposal: q enters banana scheme mode 23:54:38 but it's not OK to just fill it out with a contentless subset of unicode 23:54:46 NSQX: right; the best thing to do is to add characters to the article only when people have come up with meanings for them 23:54:50 especially with a bot 23:55:55 Well, the autogenerated information is just to get a start on the table. 23:56:03 uuuu... 23:56:05 NSQX, how about this 23:56:12 You can autogenerate a section of the table when you actually intend to fill it out. 23:56:14 NSQX: yes, but it'd result in server problems 23:56:23 browsers don't handle such gigantic pages well 23:56:33 it would use up a lot of bandwidth sending it down to clients on the server, which indirectly costs me money 23:57:10 you can use templates to make the creation of the table easier; if you want to use a bot to fill items out *as they're given meaning*, then you could seek approval for that; but just adding an empty table wholesale will result in lots of problems 23:57:14 nqsx why don't you run your own wiki and fill it with bullshit 23:57:17 Plus, wikis don't deal well with huge pages 23:57:49 I'd like to point out that's ~0.5MB of data 23:57:58 Madoka-Kaname: more than that, it's more than one character per table row 23:58:05 it'd be several megabytes 23:58:26 That's about the 1/3 a random ebook I have lying around. 23:58:37 elliott, I'm assuming minimum stuff on a row