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